perm filename WEAVE.OLD[WEB,ALS] blob
sn#634632 filedate 1981-12-14 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00024 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 % This is the version of WEAVE corresponding to the preliminary December manual
C00006 00003 @* Introduction.
C00017 00004 @* The character set.
C00033 00005 @* Input and output.
C00040 00006 @* Reporting errors to the user.
C00046 00007 @* Data structures.
C00062 00008 @* Searching for identifiers.
C00068 00009 @* Initializing the table of reserved words.
C00078 00010 @* Searching for module names.
C00085 00011 @* Lexical scanning.
C00102 00012 @* Inputting the next token.
C00114 00013 @* Phase one processing.
C00126 00014 @* Low-level output routines.
C00135 00015 @* Routines that copy \TEX\ material.
C00142 00016 @* Parsing.
C00171 00017 @* Implementing the productions.
C00204 00018 @* Initializing the scraps.
C00220 00019 @* Output of tokens.
C00240 00020 @* Phase two processing.
C00256 00021 @* Phase three processing.
C00268 00022 @* Debugging.
C00276 00023 @* The main program.
C00278 00024 @* Index.
C00282 ENDMK
C⊗;
% This is the version of WEAVE corresponding to the preliminary December manual
% except that three redundant label declarations have been removed
% (in procedures id_lookup, preix_lookup, and break_out).
% Here is TEX material that gets inserted after \input webhdr
\def\hang{\hangindent 3em\ \unskip\!}
\def\TEX{\hbox{T\hskip-.1667em\lower.424ex\hbox{E}\hskip-.125em X}}
\font b=cmr9 \def\mc{\:b} % medium caps for names like PASCAL
\def\PASCAL{{\mc PASCAL}}
\def\pb{$\.|\ldotsm\.|$} % pascal brackets (|...|)
\def\v{\.{\char'174}} % vertical (|) in typewriter font
\def\RA{\mathrel{\char'441}} % right arrow
\def\at{@@} % at sign for control texts
\def\({} % kludge for alphabetizing certain module names
\font D=cmtt at 15truept % font used in the title line below (only)
\font E=cmr7 at 14truept % font used in the title line below (only)
\def\title{WEAVE}
\def\contentspagenumber{15}
\def\topofcontents{\hbox to size{\:a Appendix D\hfil \count0}
\vfill
\ctrline{\:E The {\:D WEAVE} processor}
\vskip 15pt
\ctrline{(preliminary version, November 1981)}
\vfill}
\def\botofcontents{\vfill
\ctrline{\ragged0\spaceskip0pt\xspaceskip0pt\baselineskip9pt
\hbox par 5in{\:bThis copy of the program is
being distributed to interested ``guinea pigs'' before it has
been thoroughly tested, in order to get extra help in the testing
process. It is expected that changes will be made frequently
while \TEX82 is being developed in the next months. Several
comments in this documentation iMply that the program has
already been applied successfully to \TEX; such remarks are
merely wishful thinking at this point, but they will be true
when the final version is completed.}}}
\setcount0 \contentspagenumber
\topofcontents
\ctrline{(replace this page by the contents page printed later)}
\botofcontents
\mark{1}\eject
@* Introduction.
This program coNverts a \.{WEB} file to a \TEX\ file. It was written
By D. E* Knuth in October, 19819 a @M←[Ko!ChAg%[SICHAw9[A'β∪1|Aae=OeCZ↓QCH~)EKK\↓IKmK1←aKH↓S\A≠¬eGPXbrnr0ACYI!←kOP↓iQJA∃CeYS∃`Aae=OeCZ↓kgKH↓BAi←@[I←o8~∃aCIgS]N↓[KiQ=HAiQ¬hASf↓ckSi∀AISM→KeK]PAMe←4AiQJ↓aeKg∃]hAg
QK[J8~∀~∃QQJAG=IJAkMKfAB↓MKnA→KCikIKfA←_AiQJ↓Y←GC0A9!βMπβ→8↓G←[a%YKdAQQChA5CrA]∃KH~∃Q↑AEJ↓GQC]≥KHAS8A←iQ∃dAS]MiCYY¬iS←]Lt~∀~)9sgW%a9Si∃[vbSxAπCg∀AgiCQK[K]QfAQCYJABA⊃KMCk1h\~∃qSiK[ldS|A%]akh5←kiaUhASf↓I←]J↓oSiP↓CgGS$AGQCICGiKIfAS\↓BAoCdAiQCPACYY=of~∃∃]H[←_[aCO∀A[Ce-fAi↑↓EJAI%giS]≥kSgQ∃HAMe=ZAK]⊂[←L[1S]JA5CeWf8~∀~∃qsgWSA9]←S9IK]h4∃)QKMJAMK¬ikeKLACeJ↓CYg↑↓aeKg∃]hAS8AiQJ↓9!β'
β→8AYKegS=\A←L↓9)00AoQKIJAiQ∃r~∃CIJAkg∃HAS\↓BAgS5SYCdQEkh↓[←eJ↓G←[a1KpRA]Cr\AMsgiK4[IKa∃]IK]PAa←eQS←]f4∃←LAp]w/¬-|A
C\AE∀ASIK9iSMS∃HAEr↓Y←←W%]NACPAiQJ↓K]ie%KfAM=dAAgegiKZ4∃IKa∃]IK]
SKfN↓S\Ai!JAS]⊃KpAE∃Y←n\4∃C↓ygsgi∃ZAIKAK]IK9GSKg|~∀~)A)Q∀Aae←≥eCZA KOS]LAoSi ABAM¬SeYr↓]←e[¬XAQK¬IKdX↓[CIJ↓k`A←_AaSK
KfAi!Ch~∃↓=gsgQKZAI∃aK]I∃]GSKM|~∃]SYXA5←giYdAEJA→SYYK⊂AS\A1CiKd8A)QJ↓8]w/∃¬|AS9akhA
←[Kf↓Me←Z↓MSYJ↓yS]aUixX~)iQJAq)18↓←kiaUhAO←∃fAi↑↓MSYJ↓y←kiAkixX↓C]HA∃ee←d↓[Kgg¬OKfA≥↑Ai↑↓iQJ~)iKe[%]CX@!yiispR\@~(~∃∪L↓ShASLA]KG∃ggCedAi↑A¬E←eh↓iQJA)←DAE∃GCkg∀A←LA∧AMCi¬XAKeI←dXAQQJAaI←OeC4~∃GC1YfAi!JAAyEkSix≤Aae←
KIke∀XAoQ%GPAO=KfAi<AiQJ↓YCEK0AyK]⊂1←L1]β-p\~∀~)↓HAK9H1←La/β-∀@z@rdrrAw≥↑AQKIJAi↑↓oeC`↓ShAkA|~∀~)↓`Aqπ←[a%YKdA⊃SeKGQSmKg⎇↑~)ae←OICZA/∃β-
QCS]aUhYC=kiakPYCiQrRv~)YCEK0AK]Ha←L1/∃β-
v↓wO↑A!KeJAQ↑AMS9SgQ|4∃G←]MhAy
←]gi¬]ifA%\AiQ∀A←ki∃dAEY=GW⎇↑~∃ieaJAq)saKLAS\AQQJA←UiKdA Y←GW⎇↑~)mCdAy∂Y← CYfA%\AiQ∀A←ki∃dAEY=GW⎇↑~∃qee←HAQC]⊃YS]N↓ae←G∃IkeKM⎇↑4∃ae←
KIke∀AS]SQSCYSiJv~∀%mCdAy→←G¬XAmCISCEY∃fAM←HAS]SQSCYSiCiS←9⎇↑4∀∪EK≥S\Aq'KhA%]SiS¬XAmC1kKgy↑~∀%K]Hv4∀~∃↓'←[J↓←LAi!SfAG=IJASLA←ai%←]CX↓M←dAUgJAo!K\AI∃EkOO%]NA←9YrvAMkGPA5CiKe%CX~∃%fAK]
Y←gK⊂AEKi]KK\AQQJAI∃YS[SQKefAqIKEk≥xAC]⊂@IyOUEKIx⊂\@~∃=iQKd↓aCeiLXAIK1S[Si∃HAEr↓ygiCQxAC]⊂@Iyi¬igxH0~∃Ce∀A←ai%←]CY1rAS]
YkIK⊂ASLAMiCiSMiSGf↓CE←kPA8]w]β-xOfA[∃[←er4∃kgC≥JACe∀AIKg%eKH\↓β]←i!KdAg5CYXAMKGiS=\A←L↓iQJAAe←Oe¬Z~∃↓ygsgi∃ZAIKAK]IK9GSKg|~∃SLAkgK⊂Ai↑AMWS`AQQJAA⊃SeKGQ←erAACOKf≤AS\A→SYKf↓ae←IUGKHA]SiPAQQJAwq[FAxAKISQ←d~∃¬hA'i¬]M←e⊂vAiQ¬hAG←⊃JASf↓IKYS5SiKH↓ErAyMiC]M=eIxA¬]H@IqIe←M9Cigx⊂\~∀~)↓HAI∃EkNzu↓vAw
QC]O∀AiQSLAi↑AI99w⊃KEkOy9Kcmq]kYX⊂NAoQ∃\AIK kOOS9O|~∃↓HAOk KHz{↓|AwG!C]OJ↓iQSf↓i↑A@⊃99wOUEKI⎇qKcm99kYXH≤AoQK8AIKEUOOS]≥|~∃↓_AIKEUNz{E∃OS\~)↓LAOUEKHzuK]H~)F~∃↓HAgi¬hz{↓lAwGQ¬]OJAQQSfAQ↑A@Iq9wgi¬i⎇9KEm9]k1XHNA]QK\A≥CiQKIS]NAUgCOJ↓giCi%giSGM|~∃↓⊂AiCiLz{↓|↓wGQC9OJAi!SfAi<A@I9qwiCiM⎇9KcY9]kY0HNAo!K\AO¬iQKe%]NAkMCOJAMiCiSMiSGgx~∃↓L↓giCht{EKO%\~∃↓_AiCiLz{K]⊂~∃F4∃↓HAMiC]M=eHzz↓wGQC9OJAi!SfAi<A@I9qwgiC9M←eIy9Kcmp]w↓↓qw|HN↓oQK\↓]←h~(∪kgS9NAw95FA|↓MSYKM|~∃↓⊂AIe←→]CiftzAwG!C]OJ↓iQSf↓i↑A@⊃99wII←M]CQg⎇9KEm8]w↓↓9⎇|⊂NAoQ∃\A]←P~∀∪kMS]NAm9[FA∃|AMS1Kg|~)↓LAgQC]M←IHz{E∃OS\~)↓LAII←M]CQfz{K9H~∀~)A)Q∀A9!βMπβ→8↓G←[a%YKdAUgKHAQ↑AIKYKY←`↓iQSf↓gsgi∃ZAQCLAAAG=[aSY∃d~∃I%eKGi%mKfN≤AiQCPAGC\↓CaaK¬dAS\↓G←[[∃]ifA]Q←gJ↓MSegPAGQCICGiKHASfA∧AI←Y1CdAg%O\\~)∪\AaI←IkGQS←\AYKegS=]fA←_A8]w]β-xAiQKMJAISIKGiSYKfAi∃YXAi!JAG←5aSYKHAiQCP~∃↓=MsgiK4AIKa∃]IK]
SKgx~∃Sh↓SfAg¬MJAi<ACm←d range checks and to leave out the extra code it inserts
for the \PASCAL\ debugger's benefit, although interrupts will occur if
there is arithmetic overflow.
@<Compiler directives@>=
@{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead}
debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging}
@ Labels are given symbolic names by the following definitions. We insert
the label `|exit|:' just before the \&{end} of a procedure in which we have
used the `\&{return}' statement defined below;
the label `|restart|' is occasionally used at the very beginning of a
procedure; and the label `|reswitch|' is occasionally used just prior to
a \&{case} statement in which some cases change the conditions and we wish to
branch to the newly applicable case.
Loops that are set up with the \&{loop} construction defined below are
commonly exited by going to `|done|' or to `|found|' or to `|not_found|',
and they are sometimes repeated by going to `|continue|'.
@d exit=10 {go here to leave a procedure}
@d restart=20 {go here to start a procedure again}
@d reswitch=21 {go here to start a case statement again}
@d continue=22 {go here to resume a loop}
@d done=30 {go here to exit a loop}
@d found=31 {go here when you've found it}
@d not_found=32 {go here when you've found something else}
@ Here are some macros for common programming idioms and for the default
case statement.
@↑system dependencies@>
@d incr(#) == #←#+1 {increase a variable by unity}
@d decr(#) == #←#-1 {decrease a variable by unity}
@d loop == @+ while true do@+ {repeat over and over until a |goto| happens}
@d do_nothing == {empty statement}
@d return == goto exit {terminate a procedure call}
@d othercases == others: {default for cases not listed explicitly}
@d endcases == @+end {follows the default case}
@f othercases == else
@f endcases == end
@f return == nil
@f loop == xclause
@ The following parameters are set big enough to handle \TEX, so they
should be sufficient for most applications of \.{WEAVE}.
@<Constants...@>=
@!max_bytes=20000; {number of bytes in identifiers, index entries, and
module names; must be less than 65536}
@!max_names=2000; {number of identifiers, index entries, and module names;
must be less than 10240}
@!hash_size=353; {should be prime}
@!buf_size=100; {maximum length of input line}
@!longest_name=300; {module names shouldn't be longer than this}
@!long_buf_size=400; {|buf_size+longest_name|}
@!line_length=80; {lines of \TEX\ output have at most this many characters,
should be less than 256}
@!max_refs=12000; {number of cross references; must be less than 65536}
@!max_toks=20000; {number of symbols in \PASCAL\ texts being parsed;
must be less than 65536}
@!max_texts=2000; {number of phrases in \PASCAL\ texts being parsed;
must be less than 10240}
@!max_scraps=1000; {number of tokens in \PASCAL\ texts being parsed}
@!stack_size=200; {number of simultaneous output levels}
@* The character set.
One of the main goals in the design of \.{WEB} has been to make it readily
portable between a wide variety of computers. Yet \.{WEB} by its
very nature must use a greater variety of characters than most computer
programs deal with, and character encoding is one of the areas in which
existing machines differ most widely from each other.
To resolve this problem, all input to \.{WEAVE} and \.{TANGLE} is converted
to an internal seven-bit code that is essentially standard ascii, the ``American
Standard Code for Information Interchange.'' The conversion is done
immediately when each character is read in. Conversely, characters are
converted from ascii to the user's external representation just before
they are output.
Such an internal code is relevant to users of \.{WEB} only because it is
the code used for preprocessed constants like \.{"A"}. If you are writing
a program in \.{WEB} that makes use of such one-character constants, you
should convert your input to ascii form, like \.{WEAVE} and \.{TANGLE} do.
Otherwise \.{WEB}'s internal coding scheme does not affect you.
@↑ascii code@>
Here is a table of the standard visible ascii codes:
$$\vbox{
\hbox{\hbox to 40pt{\hfill0\hfill}\!
\hbox to 40pt{\hfill1\hfill}\!
\hbox to 40pt{\hfill2\hfill}\!
\hbox to 40pt{\hfill3\hfill}\!
\hbox to 40pt{\hfill4\hfill}\!
\hbox to 40pt{\hfill5\hfill}\!
\hbox to 40pt{\hfill6\hfill}\!
\hbox to 40pt{\hfill7\hfill}}
\vskip 4pt
\hrule
\def\↑{\vrule height 10.5pt depth 4.5pt}
\halign{\hbox to 0pt{\hskip -24pt\O#0\hfill}⊗\↑
\hbox to 40pt{\:t\hfill#\hfill\↑}⊗\!
\hbox to 40pt{\:t\hfill#\hfill\↑}⊗\!
\hbox to 40pt{\:t\hfill#\hfill\↑}⊗\!
\hbox to 40pt{\:t\hfill#\hfill\↑}⊗\!
\hbox to 40pt{\:t\hfill#\hfill\↑}⊗\!
\hbox to 40pt{\:t\hfill#\hfill\↑}⊗\!
\hbox to 40pt{\:t\hfill#\hfill\↑}⊗\!
\hbox to 40pt{\:t\hfill#\hfill\↑}\cr
04⊗\char'40⊗!⊗"⊗\char'43⊗\char'44⊗\char'45⊗\char'46⊗\char'16\cr
\noalign{\hrule}
05⊗(⊗)⊗*⊗+⊗,⊗-⊗.⊗/\cr
\noalign{\hrule}
06⊗0⊗1⊗2⊗3⊗4⊗5⊗6⊗7\cr
\noalign{\hrule}
07⊗8⊗9⊗:⊗;⊗<⊗=⊗>⊗?\cr
\noalign{\hrule}
10⊗@@⊗A⊗B⊗C⊗D⊗E⊗F⊗G\cr
\noalign{\hrule}
11⊗H⊗I⊗J⊗K⊗L⊗M⊗N⊗O\cr
\noalign{\hrule}
12⊗P⊗Q⊗R⊗S⊗T⊗U⊗V⊗W\cr
\noalign{\hrule}
13⊗X⊗Y⊗Z⊗[⊗\char'134⊗]⊗\char'17⊗\char'32\cr
\noalign{\hrule}
14⊗\char'15⊗a⊗b⊗c⊗d⊗e⊗f⊗g\cr
\noalign{\hrule}
15⊗h⊗i⊗j⊗k⊗l⊗m⊗n⊗o\cr
\noalign{\hrule}
16⊗p⊗q⊗r⊗s⊗t⊗u⊗v⊗w\cr
\noalign{\hrule}
17⊗x⊗y⊗z⊗\char'173⊗\char'174⊗\char'175⊗\char'24\cr}
\hrule width 280pt}$$
(Actuallq, of course, code @'040 is an invisible blank space.) Code @'136
was once as an upward arrow (\.{\char'136}), and code @'137 was
once a left arrow (\.{\char'137}), in olden times when the first draft
of ascii code was prepared; but \.{WEB} works with today's standard
ascii in which those codes represent a caret and an underline as shown.
@<Types...@>=
@!ascii_code=0..127; {seven-bit numbers, a subrange of the integers}
@ The original \PASCAL\ compiler was designed in the late 60s, when six-bit
character sets were common, so it did not make provision for lower case
letters. Nowadays, of course, we need to deal with both upper and lower case
alphabets in a convenient way, so \.{WEB} assumes that it is being used
with a \PASCAL\ whose character set contains at least the characters of
standard ascii as listed above. Some \PASCAL\ compilers use the original
name |char| for the data type associated with the characters in text files,
while other \PASCAL s consider |char| to be a 64-element subrange of a larger
data type that has some other name.
In order to accommodate this difference, we shall use the name |text_char|
to stand for the data type of the characters on the |input| and |output|
files. We shall also assume that |text_char| consists of the elements
|chr(first_text_char)| through |chr(last_text_char)|, inclusive. The
following definitions should be adjusted if necessary.
@↑system dependencies@>
@d text_char == char {the data type of characters in text files}
@d first_text_char=0 {ordinal number of the smallest element of |text_char|}
@d last_text_char=127 {ordinal number of the largest element of |text_char|}
@<Local variables for init...@>=
i:0..last_text_char;
@ The \.{WEAVE} and \.{TANGLE} processors convert between ascii code and
the user's external character set by means of arrays |xord| and |xchr|
that are analogous to \PASCAL's |ord| and |chr| functions.
@<Globals...@>=
@!xord: array [text_char] of ascii_code; {specifies conversion of input characters}
@!xchr: array [ascii_code] of text_char; {specifies conversion of output characters}
@ If we assume that every system using \.{WEB} is able to read and write the
visible characters of standard ascii (although not necessarily using the
ascii codes to represent them), the following assignment statements initialize
most of the |xchr| array properly, without needing any system-dependent
changes. For example, the statement \.{xchr[@@\'101]:=\'A\'} that appears
in the present \.{WEB} file might be encoded in, say, {\mc EBCDIC} code
on the external medium on which it resides, but \.{TANGLE} will convert from
this external code to ascii and back again. Therefore the assignment
statement \.{XCHR[65]:=\'A\'} will appear in the corresponding \PASCAL\ file,
and \PASCAL\ will compile this statement so that |xchr[65]| receives the
character \.A in the external (|char|) code. Note that it would be quite
incorrect to say \.{xchr[@@\'101]:="A"}, because |"A"| is a constant of
type |integer|, not |char|, and because we have $|"A"|=65$ regardless of
the external character set.
@<Set init...@>=
xchr[@'40]←' ';
xchr[@'41]←'!';
xchr[@'42]←'"';
xchr[@'43]←'#';
xchr[@'44]←'$';
xchr[@'45]←'%';
xchr[@'46]←'&';
xchr[@'47]←'''';@/
xchr[@'50]←'(';
xchr[@'51]←')';
xchr[@'52]←'*';
xchr[@'53]←'+';
xchr[@'54]←',';
xchr[@'55]←'-';
xchr[@'56]←'.';
xchr[@'57]←'/';@/
xchr[@'60]←'0';
xchr[@'61]←'1';
xchr[@'62]←'2';
xchr[@'63]←'3';
xchr[@'64]←'4';
xchr[@'65]←'5';
xchr[@'66]←'6';
xchr[@'67]←'7';@/
xchr[@'70]←'8';
xchr[@'71]←'9';
xchr[@'72]←':';
xchr[@'73]←';';
xchr[@'74]←'<';
xchr[@'75]←'=';
xchr[@'76]←'>';
xchr[@'77]←'?';@/
xchr[@'100]←'@@';
xchr[@'101]←'A';
xchr[@'102]←'B';
xchr[@'103]←'C';
xchr[@'104]←'D';
xchr[@'105]←'E';
xchr[@'106]←'F';
xchr[@'107]←'G';@/
xchr[@'110]←'H';
xchr[@'111]←'I';
xchr[@'112]←'J';
xchr[@'113]←'K';
xchr[@'114]←'L';
xchr[@'115]←'M';
xchr[@'116]←'N';
xchr[@'117]←'O';@/
xchr[@'120]←'P';
xchr[@'121]←'Q';
xchr[@'122]←'R';
xchr[@'123]←'S';
xchr[@'124]←'T';
xchr[@'125]←'U';
xchr[@'126]←'V';
xchr[@'127]←'W';@/
xchr[@'130]←'X';
xchr[@'131]←'Y';
xchr[@'132]←'Z';
xchr[@'133]←'[';
xchr[@'134]←'\';
xchr[@'135]←']';
xchr[@'136]←'↑';
xchr[@'137]←'_';@/
xchr[@'140]←'`';
xchr[@'141]←'a';
xchr[@'142]←'b';
xchr[@'143]←'c';
xchr[@'144]←'d';
xchr[@'145]←'e';
xchr[@'146]←'f';
xchr[@'147]←'g';@/
xchr[@'150]←'h';
xchr[@'151]←'i';
xchr[@'152]←'j';
xchr[@'153]←'k';
xchr[@'154]←'l';
xchr[@'155]←'m';
xchr[@'156]←'n';
xchr[@'157]←'o';@/
xchr[@'160]←'p';
xchr[@'161]←'q';
xchr[@'162]←'r';
xchr[@'163]←'s';
xchr[@'164]←'t';
xchr[@'165]←'u';
xchr[@'166]←'v';
xchr[@'167]←'w';@/
xchr[@'170]←'x';
xchr[@'171]←'y';
xchr[@'172]←'z';
xchr[@'173]←'{';
xchr[@'174]←'|';
xchr[@'175]←'}';
xchr[@'176]←'~';@/
xchr[0]←' '; xchr[@'177]←' '; {these ascii codes are not used}
@ Some of the ascii codes below @'40 have been given symbolic names in
\.{WEAVE} and \.{TANGLE} because they are used with a special meaning.
@d down_arrow=@'1 {used for subscripts in many \TEX\ installations}
@d and_sign=@'4 {equivalent to `\.{and}'}
@d not_sign=@'5 {equivalent to `\.{not}'}
@d set_element_sign=@'6 {equivalent to `\.{in}'}
@d tab_mark=@'11 {ascii code used as tab-skip}
@d line_feed=@'12 {ascii code thrown away at end of line}
@d up_arrow=@'13 {used for superscripts in many \TEX\ installations}
@d form_feed=@'14 {ascii code used at end of page}
@d carriage_return=@'15 {ascii code used at end of line}
@d infinity_sign=@'16 {a character that happens to be in font cmtt}
@d circle_times=@'26 {used for alignment tabs in many \TEX\ installations}
@d left_arrow=@'30 {equivalent to `\.{:=}'}
@d right_arrow=@'31 {a character that happens to be in font cmtt}
@d not_equal=@'32 {equivalent to `\.{<>}'}
@d less_or_equal=@'34 {equivalent to `\.{<=}'}
@d greater_or_equal=@'35 {equivalent to `\.{>=}'}
@d equivalence_sign=@'36 {equivalent to `\.{==}'}
@d or_sign=@'37 {equivalent to `\.{or}'}
@ Here now is the system-dependent part of the character set. If \.{WEB} is
being implemented on a garden-variety \PASCAL\ for which only standard ascii
codes will appear in the input and output files, you should simply change
the code in this module to
$$\hbox{|for i←1 to @'37 do xchr[i]←' ';|}$$
the more general code here is intended to make \.{WEB} more friendly on
computers that have an extended character set, so that one can type things
like \.\NE\ instead of \.{<>}. People with extended character sets can
assign codes arbitrarily here, giving an |xchr| equivalent to whatever
characters the users of \.{WEB} are allowed to have in their input files,
provided that unsuitable characters do not correspond to special
codes like |down_arrow| and |carriage_return| and |not_equal| that are
listed above.
@↑system dependencies@>
The code shown here is intended to be used on the Stanford {\mc SAIL}
system and at other installations like CMU and USC where essentially the
same extended character set is used. At MIT, the three final assignments
should be eliminated, since \.{WEB}'s character set agrees exactly with
MIT's.
@<Set init...@>=
for i←1 to @'37 do xchr[i]←chr(i);
xchr[left_arrow]←chr(@'137);
xchr[not_equal]←chr(@'33);
xchr[@'33]←chr(@'176);
@ The following system-independent code makes the |xord| array contain a
suitable inverse to the information in |xchr|.
@<Set init...@>=
for i←first_text_char to last_text_char do xord[chr(i)]←@'40;
for i←1 to @'176 do xord[xchr[i]]←i;
@* Input and output.
The input conventions of this program are intended to be very much like those
of \TEX\ (except, of course, that they are much simpler, because much less
needs to be done). Furthermore they are identical to those of \.{TANGLE}.
Therefore people who need to make modifications to all three systems
@↑system dependencies@>
should be able to do so without too many headaches.
However, we use the standard \PASCAL\ input/output procedures here wherever
possible, since \.{WEAVE} does not have to deal with files that are named
dynamically by the user, and since there is no input from the terminal.
@ Terminal output is done by writing on file |tty|, which is assumed to
consist of characters of type |text_char|:
@↑system dependencies@>
@d print(#)==write(tty,#) {`|print|' means write on the terminal}
@d print_ln(#)==write_ln(tty,#) {`|print|' and then start new line}
@d new_line==write_ln(tty) {start new line}
@d print_nl(#)== {print information starting on a new line}
begin new_line; print(#);
end
@ The following code re-opens the |input| file in a mode that allows us
to see end-of-line characters. The \PASCAL\ compiler used
with an extended ascii character set at Stanford considers that |eoln| occurs
at any of the characters |carriage_return|, |line_feed|, |form_feed|,
|chr(@'32)|, and |chr(@'33)|; these characters would be indistinguishable
from each other if we did not open the file in a special mode.
to see end-of-line characters.
@↑system dependencies@>
As we will see below, \.{WEAVE} reads through the entire input file twice.
Strictly speaking, this breaks a rule on page 59 of the Jensen-Wirth \PASCAL\
manual, so the input file will have to be given a name other than |input|
if that rule is enforced.
@p procedure open_input; {prepare for ascii input on the |input| file}
begin reset(input,'','/E');
end;
@ Input goes into an array called |buffer|.
@<Globals...@>=@!buffer: array[0..long_buf_size] of ascii_code;
@ The following procedure gets one line of input, according to the conventions
of \TEX, namely: If the |input| file has been entirely read, |input_ln| returns
|false| and does nothing else. Otherwise if the next item in the file is an
end-of-page mark, the procedure sets |buffer[0]←form_feed|, |limit←0|, and
returns |true|. Otherwise |ascii_code| numbers representing the next line
of the file are input into |buffer[0]|, |buffer[1]|, $\ldotss$,
|buffer[limit-1]|; the global variable |limit| is set to the length of the
@↑system dependencies@>
line; |buffer[limit]| is set to an ascii |carriage_return|; and the
procedure returns |true|. It is assumed that none of the |ascii_code| values
of |buffer[j]| for |0≤j<limit| is equal to 0, @'177, |line_feed|, |form_feed|,
or |carriage_return|.
@p function input_ln:boolean; {inputs the next line or returns |false|}
label done;
begin if eof(input) then input_ln←false
else begin limit←0; buffer[0]←xord[input↑];
if buffer[0]=form_feed thenread_ln
else loop@+begin if eoln(input)∧
(input↑≠chr(@'32))∧(input↑≠chr(@'33)) then
begin buffer[limit]←carriage_return; read_ln;
goto done;
end;
if limit=buf_size-1 then {keep |buffer[buf_size]| empty}
begin buffer[limit]←carriage_return;
print_nl('! Input line too long'); error; goto done;
@.Input line too long@>
end;
incr(limit); get(input);
if eof(input) then
begin buffer[limit]←carriage_return; goto done;
end;
buffer[limit]←xord[input↑];
end;
done: input_ln←true;
end;
end;
@* Reporting errors to the user.
The \.{WEAVE} processor operates in three phases: first it inputs the source
file and stores cross-reference data, then it inputs the source once again and
produces the \TEX\ output file, and finally it sorts and outputs the index.
The global variable |phase_one| tells whether we are in Phase I or not.
@<Globals...@>=
@!phase_one: boolean; {|true| in Phase I, |false| in Phase II}
@ If an error is detected while we are debugging,
we usually want to look at the contents of memory.
A special procedure will be declared later for this purpose.
@<Error handling...@>=
debug@+ procedure debug_help; forward;@+gubed
@ The command `|err_print('! Error message')|' will report a syntax error to
the user, by printing the error message at the beginning of a new line and
then giving an indication of where the error was spotted in the source file.
Note that no period follows the error message, since the error routine will
fill this in automatically.
The actual error indications are provided by a procedure called |error|.
However, error messages are not actually reported during phase one,
since errors detected on the first pass will be detected again
during the second.
@d err_print(#)==
begin if ¬ phase_one then
begin new_line; print(#); error;
end;
end
@<Error handling...@>=
procedure error; {prints `\..' and location of error message}
var@!k,@!l: 0..long_buf_size; {indices into |buffer|}
begin @<Print error location based on input buffer@>;
debug debug_skipped←debug_cycle;debug_help;@+gubed
end;
@ The error locations can be indicated by using the global variables
|loc|, |page|, and |line|, which tell respectively the first unlooked-at
position in |buffer|, the current page number, and the current line number.
@<Print error location based on input buffer@>=
begin print_ln('. (p.', page:0, ',l.', line:0, ')');
if loc≥limit then l←limit else l←loc;
for k←1 to l do
if buffer[k-1]=tab_mark then print(' ')
else print(xchr[buffer[k-1]]); {print the characters already read}
new_line;
for k←1 to l do print(' '); {space out the next line}
for k←l+1 to limit do print(xchr[buffer[k-1]]); {print the part not yet read}
print(' '); {this space separates the message from future asterisks}
end
@ The |quit| procedure just cuts across all active procedure levels
and jumps out of the program. This is the only non-local \&{goto} statement
in \.{WEAVE}. It is used when no recovery from a particular error has
been provided.
Some \PASCAL\ compilers do not implement non-local |goto| statements.
@↑system dependencies@>
In such cases the code that appears at label |end_of_WEAVE| should be
copied into the |quit| procedure, followed by a call to a system procedure
that terminates the program.
@d fatal_error(#)==begin new_line; print(#); error; quit;
end
@<Error handling...@>=
procedure quit;
begin goto end_of_WEAVE;
end;
@ Sometimes the program's behavior is far different from what it should be,
and \.{WEAVE} prints an error message that is really for the \.{WEAVE}
maintenance person, not the user. In such cases the program says
|confusion('indication of where we are')|.
@d confusion(#)==fatal_error('! This can''t happen (',#,')')
@.This can't happen@>
@ An overflow stop occurs if \.{WEAVE}'s tables aren't large enough.
@d overflow(#)==fatal_error('! Sorry, ',#,' capacity exceeded')
@.Sorry, x capacity exceeded@>
@* Data structures.
During the first phase of its processing, \.{WEAVE} puts identifier names,
index entries, and module names into the large |byte_mem| array, which is
packed with seven-bit integers. Allocation is sequential, since names are
never deleted.
An auxiliary array |byte_start| is used as a directory for |byte_mem|,
and the |link|, |ilk|, and |xref| arrays give further information about names.
These auxiliary arrays consist of sixteen-bit items.
@<Types...@>=
@!eight_bits=0..255; {unsigned one-byte quantity}
@!sixteen_bits=0..65535;{unsigned two-byte quantity}
@ @<Globals...@>=
@!byte_mem: packed array [0..max_bytes] of ascii_code; {characters of names}
@!byte_start: array [0..max_names] of sixteen_bits; {directory into |byte_mem|}
@!link: array [0..max_names] of sixteen_bits; {hash table or tree links}
@!ilk: array [0..max_names] of sixteen_bits; {type codes or tree links}
@!xref: array [0..max_names] of sixteen_bits; {heads of cross-reference lists}
@ The names of identifiers are found by computing a hasH address |h| and
then looking at strings of bytes signified by |hash[h]|, |link[hash[h]]|,
|link[link[hash[h]]]|, $\ldotss$, until either finding the desired name
or encountering a zero.
A `|name_pointer|' variable, which signifies a name, is an index into
|byte_start|. The actual sequence of characters in the name pointed to by
$p$ appears in positions |byte_start[p]| to |byte_start[p+1]-1|, inclusive,
in |byte_mem|. The pointer 0 is used for undefined module names; we don't
want to use it for the names of identifiers, since 0 stands for a null
pointer in a linked list.
We usually have |byte_start[name_ptr]=byte_ptr|, since this identifies the
end of the most recently created name, which is pointed to by |(name_ptr-1)|.
@d length(#)==byte_start[#+1]-byte_start[#] {the length of a name}
@<Types...@>=
@!name_pointer=0..max_names; {identifies a name}
@ @<Global...@>=
@!name_ptr:name_pointer; {first unused position in |byte_start|}
@!byte_ptr:0..max_bytes; {first unused position in |byte_mem|}
@ @<Set init...@>=
name_ptr←1; byte_ptr←1; byte_start[0]←1; byte_start[1]←1;
@ Several types of identifiers are distinguished by their |ilk|:
\yskip\hang |normal| identifiers are part of the \PASCAL\ program and will
appear in italic type.
\yskip\hang |roman| identifiers are index entries that appear after \.{@@\↑}
in the \.{WEB} file.
\yskip\hang |wildcard| identifiers are index entries that appear after
\.{@@:} in the \.{WEB} file.
\yskip\hang |typewriter| identifiers are index entries that appear after
\.{@@.} in the \.{WEB} file.
\yskip\hang |array_like|, |begin_like|, $\ldotss$, |var_like| identifiers
are \PASCAL\ reserved words whose |ilk| explains how they are to be treated
when \PASCAL\ code is being formatted.
\yskip\hang Finally, if $c$ is an ascii code, an |ilk| equal to |char_like+c|
denotes a reserved word that will be converted to character $c$.
@d normal=0 {ordinary identifiers have |normal| ilk}
@d roman=1 {normal index entries have |roman| ilk}
@d wildcard=2 {user-formatted index entries have |wildcard| ilk}
@d typewriter=3 {`typewriter type' entries have |typewriter| ilk}
@d reserved(#)==(ilk[#]>typewriter) {tells if a name is a reserved word}
@d array_like=4 {\&{array}, \&{file}, \&{set}}
@d begin_like=5 {\&{begin}}
@d case_like=6 {\&{case}}
@d const_like=7 {\&{const}, \&{label}, \&{type}}
@d div_like=8 {\&{div}, \&{mod}}
@d do_like=9 {\&{do}, \&{of}, \&{then}}
@d else_like=10 {\&{else}}
@d end_like=11 {\&{end}}
@d for_like=12 {\&{for}, \&{while}, \&{with}}
@d goto_like=13 {\&{goto}, \&{packed}}
@d if_like=14 {\&{if}}
@d in_like=15 {\&{in}}
@d nil_like=16 {\&{nil}}
@d proc_like=17 {\&{function}, \&{procedure}, \&{program}}
@d record_like=18 {\&{record}}
@d repeat_like=19 {\&{repeat}}
@d to_like=20 {\&{downto}, \&{to}}
@d until_like=21 {\&{until}}
@d var_like=22 {\&{var}}
@d loop_like=23 {\&{loop}, \&{xclause}}
@d char_like=24 {\&{and}, \&{or}, \&{not}, \&{in}}
@ The names of modules are stored in |byte_mem| together
with the identifier names, but a hash table is not used for them because
\.{WEAVE} needs to be able to recognize a module name when given a prefix of
that name. A conventional binary seach tree is used to retrieve module names,
with fields called |llink| and |rlink| in place of |link| and |ilk|. The
root of this tree is |rlink[0]|.
@d llink==link {left link in binary search tree for module names}
@d rlink==ilk {pight link in binary search tree for module names}
@<Set init...@>=
rlink[0]←0; {the binary search tree starts out with nothing in it}
@ Here is a little procedure that prints the text of a given name on the
user's terminal.
@p procedure print_id(@!p:name_pointer); {print identifier or module name}
var k:0..max_bytes; {index into |byte_mem|}
begin if p≥name_ptr then print('IMPOSSIBLE')
else for k←byte_start[p] to byte_start[p+1]-1 do print(xchr[byte_mem[k]]);
end;
@ The other large memory area in \.{WEAVE} keeps the cross-reference data.
All uses of the name $p$ are recorded in a linked list beginning at
|xref[p]|, which points into the |xmem| array. Entries in |xmem| consist
of two sixteen-bit items per word, called the |num| and |xlink| fields.
If $x$ is an index into |xmem|, reached from name $p$, the value of |num(x)|
is either a module number where $p$ is used, or it is |def_flag| plus a
module number where $p$ is defined; and |xlink(x)| points to the next such
cross reference for $p$, if any. This list of cross references is in
decreasing order by module number. The current number of cross references
is |xref_ptr|, and the current module number is |module_count|.
The global variable |xref_switch| is set either to |def_flag| or to zero,
depending on whether the next cross reference to an identifier is to be
underlined or not in the index. This switch is set to |def_flag| when
\.{@@!} or \.{@@d} or \.{@@f} is scanned, and it is cleared to zero when
the next identifier or index entry cross-reference has been made. Similarly,
the global variable |mod_xref_switch| is either |def_flag| or zero, depending
on whether a module name is being defined or used.
@d num(#)==xmem[#].num_field
@d xlink(#)==xmem[#].xlink_field
@d def_flag=10240
@<Globals...@>=
@!xmem:array[0..max_refs] of packed record@/
@!num_field: sixteen_bits; {module number plus zero or |def_flag|}
@!xlink_field: sixteen_bits; {pointer to the previous cross reference}
end;
@!xref_ptr:0..max_refs; {the largest occupied position in |xmem|}
@!module_count:0..def_flag-1; {the current module number}
@!xref_switch,@!mod_xref_switch:0..def_flag; {either zero or |def_flag|}
@ @<Set init...@>=xref_ptr←0; xref_switch←0; mod_xref_switch←0; num(0)←0;
@ A new cross reference for an identifier is formed by calling |new_xref|,
which discards duplicate entries and ignores non-underlined references
to one-letter identifiers or \PASCAL's reserved words.
@d append_xref(#)==if xref_ptr=max_refs then overflow('cross reference')
else begin incr(xref_ptr); num(xref_ptr)←#;
end
@p procedure new_xref(@!p:name_pointer);
label exit;
var q:0..max_refs; {pointer to previous cross-reference}
@!m,@!n: sixteen_bits; {new and previous cross-reference value}
begin if (reserved(p)∨(byte_start[p]+1=byte_start[p+1]))∧(xref_switch=0) then
return;
m←module_count+xref_switch; xref_switch←0; q←xref[p];
if q>0 then
begin n←num(q);
if (n=m)∨(n=m+def_flag) then return
else if m=n+def_flag then
begin num(q)←m; return;
end;
end;
append_xref(m); xlink(xref_ptr)←q; xref[p]←xref_ptr;
exit: end;
@ The cross reference lists for module names are slightly different. Suppose
that a module name is defined in modules $m↓1$, $\ldotss$, $m↓k$ and used in
modules $n↓1$, $\ldotss$, $n↓l$. Then its list will contain $m↓1+|def_flag|$,
$m↓k+|def_flag|$, $\ldotss$, $m↓2+|def_flag|$, $n↓l$, $\ldotss$, $n↓1$, in
this order.
@p procedure new_mod_xref(@!p:name_pointer);
var q,@!r:0..max_refs; {pointers to previous cross-references}
begin q←xref[p]; r←0;
if q>0 then
begin if mod_xref_switch=0 then while num(q)≥def_flag do
begin r←q; q←xlink(q);
end
else if num(q)≥def_flag then
begin r←q; q←xlink(q);
end;
end;
append_xref(module_count+mod_xref_switch); xlink(xref_ptr)←q;
mod_xref_switch←0;
if r=0 then xref[p]←xref_ptr
else xlink(r)←xref_ptr;
end;
@ A third large area of memory is used for sixteen-bit `tokens', which appear
in short lists similar to the strings of characters in |byte_mem|. Token lists
are used to contain the result of \PASCAL\ code translated into \TEX\ form;
further details about them will be explained later. A |text_pointer| variable
is an index into |tok_start|.
@<Types...@>=
@!text_pointer=0..max_texts; {identifies a token list}
@ The first position of |tok_mem|
thatis unoccupied by replacement Text is called |tok_ptr|, and the fIpst
unused location of |tok_start| is called |text_ptr|.
We usually have |tok_start[text_ptr]=tok_ptr|, forthe same reasoN that
|byte_start[name_ptr]| is usually equal to |byte_ptr|.
@<Glob...@>=
@!tok_mem: packed array [0..max_toks] of sixteen_bits; {tokens}
@!tok_start: array [text_pointer] of sixteen_bits; {directory into |tok_mem|}
@!text_ptr:text_pointer; {first unused position in |tok_start|}
@!tok_ptr:0..max_tkks; {first unused position in |tok_mem|}
stat@!max_tok_ptr,@!max_txt_ptr:0..max_toks; {largest values occurring}
tats
@ @<Set init...@>=
tok_ptr←1; text_ptr←1; tok_start[0]←1; tok_start[1]←1;
stat max_tok_ptr←1; max_txt_ptr←1;@+tats
@* Searching for identifiers.
The hash table described above is updated by the |id_lookup| procedure,
which finds a given identifier and returns a pointer to its index in
|byte_start|. The identifier is supposed to match character by character
and it is also supposed to have a given |ilk| code; the same name may be
present more than once if it is supposed to appear in the index with
different typesetting conventions.
If the identifier was not already present, it is inserted into the table.
Because of the way \.{WEAVE}'s scanning mechanism works, it is most convenient
to let |id_lookup| search for an identifier that is present in the |buffer|
array. Two other global variables specify its position in the buffer: the
first character is |buffer[id_first]|, and the last is |buffer[id_loc-1]|.
@<Glob...@>=
@!id_first:0..long_buf_size; {where the current identifier begins in the buffer}
@!id_loc:0..long_buf_size; {just after the current identifier in the buffer}
@#
@!hash:array [0..hash_size] of sixteen_bits; {heads of hash lists}
@ Initially all the hash lists are empty.
@<Local variables for init...@>=
@!h:0..hash_size; {index into hash-head array}
@ @<Set init...@>=
for h←0 to hash_size-1 do hash[h]←0;
@ Here now is the main procedure for finding identifiers (and index
entries). The parameter |t| is set to the desired |ilk| code. The
identifier must either have |ilk=t|, or we must have
|t=normal| and the identifier must be a reserved word.
@p function id_lookup(@!t:eight_bits):name_pointer; {finds current identifier}
label found;
var i:0..long_buf_size; {index into |buffer|}
@!h:0..hash_size; {hash code}
@!k:0..max_bytes; {index into |byte_mem|}
@!l:0..long_buf_size; {length of the given identifier}
@!p,@!q:name_pointer; {where the identifier is being sought}
begin l←id_loc-id_first; {compute the lEngth}
@<Compute the hash code |h|@>;
@<Compute the name location |p|@>;
if p=name_ptr then @<Enter a new name into the table at position |p|@>;
id_lookup←p;
end;
@ A simplE has@ AG←I∀ASfAUgKHt↓∪DAi!JAgKEkK]G∀A←L~)CgGS$AG←I∃fASfIFαcαe9Y⊃←igZ↓FβZH0ASif↓QCgP↓mCYK∀AoSY0AEJ~(H@Peyw\ZcyFαbVI=w\ZIx¬∩Zs∂∪␈#E/∞q&q2fk?∪?¬a3s#∂≠ cOOS↔q9" 4(∀T↓r∂?oβWS∃π##∃βFO!→rr↓ythS"␈.3≠↔J↑K⊂c≠M∪GRuZβ&␈'!C≠'K≥!-ElhS←#'f)β%sN c3?~β∪<4PK↔∨Nqβ"⎇FA/!/↔+≠≠↔∃[&u%εk?⊃βFO c≡Kk∃mεK;∂IFI%l4PK↔;⊂hP4*↓∧K→βSF)β'∪.sS'≠N+Aβ'~β;↔]bβ'Qβ>K3 ",RπεL≤6."
≥bπε}=↔&N⎇dπgβ]l⊗n)∞∞G↔bD↓PV←MW↔≡≡8Rπg∂Dπ>NMDπε}≥nBπ&t
↔'~←εO∨M≥f:εM|6∂&≥⎇bph!Q$βd=⎇Wπ/LTπ&FT
f∞nT
F}≡≡M⊗}reedβsQQ'¬}≡6E↑W0hW⎇
⊗f*∞β3αεMqPPN,\vNr
_bαFL]f?&¬∞αKnE⊂BBF≥M5←¬W↑BIzα
≥π]Y|[,≥
!λ∞<y4Nl9
≤¬∃*(∃
9C"A∀λλλλπ⊂{s.<Y(
l99(∧N λ∃m≡~λ⊂n↑\Y;ND~9→-n~9Z,↑Kλ↔⎇⎇≠hmβzw2∨⊂4s⊂→xzpv⊂∨→FEαx/v$[5mx.NFE∧r[2≥FE≤/w0vYL8:9∞P=z4→P1z`2pent i`entibaeR is newp≤~)YS]Wma; ?FG"oEi`~ε≡6E↑ [wβZ∂=⊗w≡↑.Bα'∧Dε∂",V.Nmm⊗v:
|bεF≡8
∧
~<u∂A YSn]Y∞C!! Pλλπ⊂{s.<Y(
l8εrP 8∩↔↔ ∨≡FB12st[⊂4otY34i≤z≥P5Wq<z2F9z0y≥-x.MCE;t4[2P∀4O4r6≠qPB∀_8s3 %p¬7S:uEsiJa[C@6↑Zu%β&x4(≤,V.NβH∩-l|J~%↔h~0↔_y∀5@)8ε~∀∪∃]Hv~)SDARuSH #d¬v~πMVrε⎇zFzεmzVv#46∞fDλλm<X8nL<\h≤βy2b←α αeNd
α
@ The fol@1←oS]≤Ae←Kβ#';∃∧≠?W3 β7π∂*β∨?? βWO∃∧{⊂∩ε∀λ l]Y<X-M>Y1∧∂≤_8m|⊂8 2ocedure
@QQChAAkifA%iK[f↓S]i↑↓U`↔O βCπK ∧ε}2⊂πε∞=<V"ε≡.&∂J
→g∨&\≤Bε↑d
FF*∞⎇ε}fT∞FFNlpAQ@εE ∂ s:2\⊂0P'→{P70[rW↔↔⊂∨~FE_2stwλ4s⊂1≡z2L8≥9∃v∨≠p|1≡z2yP≥42w overflh∂nPα;gS*β7π↔⎇∪e≥%Xh+'→∧sπ7∀GβSIwn`c;∞k↔Mβ&C↔9β|εf/⊗mIw:B⎇l⊗n*u↔0hV≠⎇⊗!Fm~'>∞h∩k|↑=→#∞≥≤Fd∂yy5∧∞Y89∂∀≥≠h
]⎇Y(∞M→(∩,L9]~,@4ry into |byte_hK[qxλ4,⎇εNfT ∪fNC
F}~MphPα8Y,]9H⊂O≡→&≠,]4¬unWq:s &erP↔Stp
β'v≠@∩F5↔2εNl8E
*.c!↓9;Yπ1"X↑.L&≤∃∞-u]@~w1y∧≠0rrL≤:9∀]H1<z2F9z0y≥-w0vYL8:9↔ou]FB4r5m\.h∂dlAqeK→0∂Bv{↓l4+,s⊂4λ2↓)∧K;'SN3'kNs≥βSF)βSπ⊗c∃β?2βK↔O-∪[↔⊃π;?K∪~p4*←*β#π[*βS-β>+Qαr∧
N∞εb;MβK/≠↔K[.!β←?⊗#Mβ'w#=βSF)β#π≡AβSπ⊗c∃1β∞s⊃βSF(4+ONkC3↔∨!β←πJβS=β&yβS#O→β'Mπ#=β'w≠↔KQπ##↔5ε+[↔KJβS'7*αq;n<*εZ↔rβ'Mβ↔+984T β≠↔:β7π∂⊗{MβC/∪7'Qπ+MβSzβ∪=β&C∃β'vKS'πfKkπSN{9β←O#!β¬∧≠?7C∞≠QβC⊗{∨Kπjp4(4Tβ⊃βON!e!
KiwW63↔JmMj⎇
o∨+Hc;∞k⊗␈'!C3??←+@4*ε!βO'#A!
%kkW≠6+Jmbmy
oON!d4*ε!βO'#9!
%kkW≠6+Jm↑my
oON!`4*ε!βO'#1!
%kkW≠6+JmZmy
oON!\4*ε!βO'#)!
%kkW≠6+JmVmy
oON!X4*ε!βO'#!!
%kkW≠6+JmRmy
oON!T4*∧!βO'#→!
%kkW≠6+JmNmy
oON!P4*ε!βO'#⊃!
%kkW≠6+JmJmy
oON!L4*∧!βO'# !
%kkW≠6+JmFmy
oON!H4*ε!β'⊃∪iw'⊂F3'KO%yamβ≡K⊃`4Tβ⊃β'#→uw'!C≠'K∨"⎇]mπ≠'⊃\hRβ⊃βN!QuwN c≠'↔≠R⎇YXβO'⊃0h*β⊃εK⊃UunK⊂c≠O∪OR⎇+YβO'#(4*β"β'⊃Ykk'⊂c6KKOR{!mβON!P4*ε!β'⊃;iw'⊂F3'KO%yMmβ≡K⊃L4Tβ⊃β'#Auw'!C≠'K≥"⎇Imπ≠'⊃HhRβ⊃βN!euwN c≠'↔≠R⎇EZβO'⊃λh(4*βb∨3?⊗3M9rr↓ythR↓π∂/⊂c;πn)k;πn(cC?NsS↔IZβoC?NsSMβ&yβS#*β'∪↔w#'≠'/⊃β+W∨!β';≡+KS↔'p4(4T↓αS#*β';S.s∪↔⊃π+O∃β}1βS#*β7π∂⊗{Mβπ⊗{[∃βnK∨#Qεs?Qβ⊗)β'7n+∪'π&+3eβ}∪['?/→04+↔+QβSF)βK'∃βO→βπ;∨;↔K↔"βeβ&C∃β≠}c3?←Ns≥h4Ph*↓r∨#?K∃ε31β&C∃βK/≠↔K[.!β←?⊗#N↓yhh+'⊂Fc?∞⎇↓n↓<hS'⊃MB∪¬ %B∪9 %B∪⊃ %F≠#πHFc'/∃↑;⊂c≡K∨9%\↓<4+N!U!
⊃%!∩⊃%!∩⊃%!
⊃%!J⊃%#π↔∪πdcfK/∃%\↓<4+N!U!∩⊃%!*⊃%!:⊃%!J⊃%!r⊃%#.;'8cfK/∃%\↓<4+N!Q!~⊃%!
⊃%!~⊃%!*⊃%#∂∂≠∀c3N[∃%nαx4+'#)!
∩I!=∩I!9∩I!M∩I!Q∩I#∂?w≠Pc3N[∃%nαx4+'#→!⊃∩I!%∩I!Y∩I#∪'1C3'/*In↓<hS'⊃IB∪⊃ %B∪= %F#<c3N[∃%nαx4+'#1!⊃∩I!=∩I!]∩I!9∩I!Q∩I!=∩I#S<Fc'/∃KZ↓<4VK⊃Q!⊗) %!⊗a %!↔→ %!⊗) %#.cO∀cfK/∃%\↓<4+N!M!*⊃%!r⊃%!"⊃%#↔v c3'↑)%n↓xh+'⊃"A→ JA% JA1 JA∃ JCπKK∂Hc3'↑)%n↓xh+'⊃~A→ JA= JAI JC≠?HFc'/∃KZ↓<4VK⊃a!⊗1 %!↔) %!⊗q %!⊗→ %!↔! %!⊗I %!⊗y %!⊗q %#π∪?cfK/∃%\↓<4+N!Q!:⊃%!z⊃%!"⊃%!z⊃%#∨␈#<c3N[∃%nαx4+'#⊃!%∩I!→∩I#'_Fc'/∃KZ↓<4VK⊃I!⊗I %!⊗q %#≡CπHcfK/∃/≡+Pc↔f+7↔;!CO'∨rIn↓<hS'⊃UB∪1 %B∪¬ %B∪ %B∪∃ %B∪1 %F≠?;O!C3'/*In↓<hS'⊃MB∪5 %B∪= %B∪⊃ %
id3("n")("o")("t")(char_like+not_sign);@/
id2("o")("f")(do_like);@/
id2("o")("r")(char_like+or_sign);@/
id6("p")("a")("c")("k")("e")("d")(goto_like);@/
id9("p")("r")("o")("c")("e")("d")("u")("r")("e")(proc_like);@/
id7("p")("r")("o")("g")("r")("a")("m")(proc_like);@/
id6("r")("e")("c")("o")("r")("d")(record_like);@/
id6("r")("e")("p")("e")("a")("t")(repeat_like);@/
id3("s")("e")("t")(array_like);@/
id4("t")("h")("e")("n")(do_like);@/
id2("t")("o")(to_like);@/
id4("t")("y")("p")("e")(const_like);@/
id5("u")("n")("t")("i")("l")(until_like);@/
id3("v")("a")("r")(var_like);@/
id5("w")("h")("i")("l")("e")(fop_like);@/
id4("w" ("i" ("t" ("h")(for_like);@'
id7(αx")("c")("l")("a")("u")("s")("e")(loop_like);@/
@* Searching for module names.
The |mod_lookup| procedure finds the moduLe name |modude[1..l]| in the
s`Ce
PAie∃JXAC→iKdA%]gKeQS]NA%hASL↓]KGKMgCer0ACMH↓eKikI]fAB↓a←S]QKdAi<~∃oQ∃eJASPAoCF↓M←k]⊂\~∧~)y∂Y=D\\]|z~∃C[←IUYJuCIeCrAl`\]Y=]OKgP1UC[∃:A←L↓CgGS$1G←I∀vAg]¬[JAE∃S]NAM←kOQPAM←ex~∀
∃AβGG=aIS]≤Ai↑AQQJAeUYKfA=HA8]m/¬|0A]NA5←IkY∀A]C[∀~∃gQ=kYHA JABAAe←aKHAaeK→SpA←_AC]←QQKdX↓g↑AB↓AAGY∃C\NNαβ∂?7εK'O|¬bπ≡
}Vf Q-v≡∨↑$ε⊗/N|V.r≥gJπN⎇rεv≥\W~r
Mε*π,↑7.gD
v2πM]v!FM⎇v←/∂DεO~ε∧εN2∞MεO_Q*π⊗.m∨αε≡⎇lFO&≥⎇bεO4∞fN}L≡F."dλ⊗rε↑.&␈∩
\W∨≡≤|RεO4∞π⊗NnLV"π⎇Vrπ>X6Bπm≥vf∂M≥vw_Q,↔⊗*LW&.>LV"εNXM≥Yh≤
<y(∞N{h≠ld↔↑jx05Q/eC"C!(≤λ→N]X⎇~-⎇H≠;lC≠≠sm≡<
⊂∧≥∞\z/∞α2rgε10z9J]0∞ame_pointer; {fi@9IfA[=IkIJ↓]CKKx~∃@3∞∪↔1β6{W;⊃Xh+[π∩β
i"α3↔O~b↓π↔∂+π1∩α↔K↔∂#↔I2αCK↔6Ka2↓∞+c@&]n6N}e↔0hP≥<6}o≡&O≡⎇`ε⊗/N|V.r∞Nvzεl≥V/∨aQ$α∞'&αrvM⎇f>∂>Cεv∞\W2π↑≥lF/B
≥g&Z∂IV}π]H /OA"P∧≥nLEM8:ε/=→4g∀≤¬t`.dex Into @qEsiJa[C@7ep4*↓∂↓c;πn(cC?LsS↔IXβo∂W↔∪↔;Q∧¬f}εT v $≥~→$∞y8<L=λ≥≤L\?C"H∧<.SL≥9&≤
⎇;]→.πh≡yL≡~→<D
yH∪M|→( ∞∧≥C"L,9z3Dwy|L\=→4GP8oX∞P8'`2li`≥Wla0∃@47g⊗M≥f@;l∪?∧
<h∃
(≤[m}λ≠p∪λ:42P≥92r`>
while p≠0 do
λ beGin @<S`h@⊃FHAi<AiQJ↓`↔O,¬G"ε|dε≡}↑λ↔εNβY`⊂≥42P#Z{2w≠0p
e th∞A]¬[@∃↓'↓∩↓yβ1P@O≠xπ⊃"B0∀Yα c-less @QQK@9¬α␈33L¬f@;|7#!∧rv 3e if c=gbeater↓iQK\αβB`?-H
-mv|7!Q@∧r`,pπ@∃β>{S :hn]Y∞c!∧rw2∞F@
@<Ente@HABA]∃nA[←α#W3∃∧¬f∞nTλ
-n≠h⊂~~2P:9→p¬@ <βX4+≠|εVv#$ ⊗ $_fy.≡8;λ∞M→;C!↓8Y1m≥H→0→≤α_prinpλ@!8 α'l8m↑_8
4X4∧e @5←AkYα)β+πn+@~:↔0π¬@lλ
FB ∪$g_wvx ]4q6 % h@?'+3∃βv7/8π`hPα93LGc"P⊗[pλ6 /okup←p;
@∃]Hv~(~∃Ay↔nLWαε∀λL↑h≠;lNαpe na`≠J8X]@pπPhVα9H/=→&∞∞≤J{πm8:ε/=→0→H842`. h∂mKβ∪⊂⊗@≠y`∀ q<p∀e hK[=`e≥KX4+≤dεv∞β9&∞∞≤O;,∨∧≠X-\αyP 4he`≤Aα{[↔K4¬F␈:∧⎇f∞nTp
'FA0⊂←na`≠Jaaadv4⊂'→∧∧3nf↑:2πεXD
≠~3Mmxno\⊂2v 3e rl@%]W7cu?`v~)YP∪'vZ`∨¬Yvβ@4≤[⊂∀[5mx.WX≥P 8p¬KM7A;>`Vαβ∞␈↔∂+π1ltr]OByte_ptr;
@ @<Set$c$...@>=
begin k←byte_stard[p]3 C←equal; j←1;
While (k<byte_start[p+1]) ∧ (j≤l) ∧(igdule[j]=byte_iem[i]) do
begin incr(k); incr(j);
end;
if k=byte_start[p+1] then
id∧AT⎇0AiQK8AG?KEkCX~(∪KIg∀AG?KaiK]g%←\~∃α+3O∃εK⊂∩ε'mBπ&]bε≥}∞&.6≤εβ!,;≤q$
9H≠-|≥;⊃+≥U+⊂O≡→&≠,]4zw$∞~→3Dw{⊃.yFE"[9rP!Wsy2p]2y≥FB2w2εB∧A ⊂∃42P>≤92s$↑67gZzx>⊂≤97qbY8y2P~yP9j\87qrY⊂:7P→4s2 exacTly o@9JA[←α#W3∀hS;π\Tπ&F≡@λ
<h↔
]y≥0⊗→mXWπ≠.}⊂ \P0P 0refiX,∧AβGQkCYYdAiQJ↓CYO←ISiQZ↓cSIK9iY`$hSπ∂∂,επ'~≥G≡z∞Mε*π=_
∞\=~;md≥~_.D≤{s,T≠;p∩≥v2P7_vrP4\β a PrefiX kf |modu@1K6b\9Y;xX4⊃EKG¬kgJAQQJAkMKdAo!↑AaC%]giC-S]OYdAicA∃HAS\↓[←eJ↓iQC\↓]KGKMcCer↓ae←E¬EYr~)I←Kg8OhAo¬]hAi<AEJAQ←YHAα?W βS#∃π;πOS.!β↔≠6{CA_hP4*K,≠π31π##πQ∧+CK?⊂β7πO≡∨/4λ↔⊗*
mw"π∞-⊗wε\@λN<Z;LT≤~_.<(≠p↔→U⊂$jλ4yP8≠yyta≠2BE 4hat The |prefiX_hooKupp_AAeWGK⊃keJA]SYXA→CSHA=\AiQ∀AMCeMhAaCMfXAE∃GCkg∀AiQKIJ~∃SLA]NA5CiGP0AsKh↓iQJAMKG←]⊂AaCgβ→β7'>CQβ∪/#↔∂Qεs=β↔↔∪?IβN1β¬βnS∂#Ns≥β7}#W3∀hS;π7*β#πMε{∂∂W↔∪↔⊃β∞3S↔Iπ##∃β}3≠↔;&K;≥βπ∪↔≠'Bqα'9π≠W∂!ε β∂π≡)βS#*β∂K?∨→7K↔6+K↔;≡(4+'v3?K7∂#'?9π;'31ε∪∃β'v≠?KK.≠Qβπv!αq;]:⊗εZ/qβ←'faβK↔ε{KQβvyβ↔K⊗{I9αF{←↔[/⊃04+∨+∂!β
β7'O&/∃β>K31β⊗)β∪↔&+∂S↔"βeβ&C∃αqwZRε:<b↔yβπ∪?∂↔∨≠?I8hP4*βαβ≠W;∨#'?9πβK↔≠O@c3?}[WA"α1kOOCS↔↔qC'S~Ik;πn(cC?NsS↔IZβo≠'v#Mβ;∞k∃β↔G#↔;ON{;x4W3πIβ≠Q#3↔∨→3↔G.13∨⊗+πS↔∩cCK↔6Ka3↔G#↔;ON{9%mπ[∂?7εK'O}qβ↔';↔↔9π#←=βv7↔Oph*↓π≡{W;QS↓9;7∂@c;πn+Mmβ←##∃βw+7↔∩β?→βFKSOxhR↓π)S↓9;3}s∨↔O!C;π7+Yβo'v#↔aβNsS=βfk?∪Wf+sx4T↓π-iαq;7πACgS/→mβoNs∪↔aεK;S=πcgS)C7↔7gp4*↓∂↓k;πn(cC?NsS↔IZβo∂W↔∪↔;Qεs?∪∃ε{→βSF)βO↔∂∪∂!β'∪↔↔xhR↓πEVsπ7∀Gβ?';&+Imβ↑;?SF+IβCf∂∃β&yβK↔∨+7∃β&C∃βO.K∂!ε≠S↔∩β?;∃ε∪Kπ;≡Aβ'Mε#?;↔ph*↓π∪S;π7)CC?'w#↔Imπ[↔cS.sO'?rβ≠?Wv#x4+⊗+∨'9π
⎇Amπα␈K3Ns.mBkYβ∂?.sR⎇AZβJ⎇AZβo↔>K9βO.K∂!εQβK}{Qβ?2βSK↔/p4+←FK3∃β↓YAβ∪xh('.;'9αβbO↔Qα#
⊃β&yβS#*βK↔O.cQβ?2β∂?7εK';:q9:↓sX4('N1β
wf+OMβ&C↔9β¬{33'vZoBthP'↔3≡)β'→ε→w∨K.S↔Iπ##↔9πα␈K3Ns.oBhh('↔g≠∀'.;'9β∃{AmβNs∂I#≡{W;QKYβF␈⊗c';.←αumβ¬{33'vZoBuXh($'.s⊃l4PK'→ββiAβSF+84(HK↔∨NqβB␈YβF⎇βX4($N+;⊃lhP'↔;#X4+'2β∂?Ww mEβ&C↔84PK'→β≡{W;Qk↓βS#.qβ↔K⊃CCK'w!!≥¬∧sπ7∃ε#?↔Mεs?QβnS∂!:H4*↓tsπ7∃ε#?↔Mεs?QβnS∂"βp4('.cO∃β/∪HcC⊗K;Q!: απ7⊗K∨W?/→βCK.3'a≥KX4*↓t7'?+?WMπβK↔≠OB↓x4WβK↔≠O@c3?}[WB␈∪YβoSF)βK↔∨+3Qβ>K31β⊗)↓AβN1βS#/∪∃β←∂→β;=εkπS∂Gp4+↔v!l4(2↓)∧c↔c'≡1βO≡;;'v984*f+QβW~β;?]ε≠?;ON#↔Iβ&C∃βO.∪K?W&K;↔Mπ##πQπ∪↔π⊃π##∃αbsn↑⊗↔qβO?/∪∂∃β6K3∀4V;⊃β↔∪↔π-εKQβ'w#=β7.;';>3W1β.s'SMrαS#↔⊗)βπK*β≠?W∩βOW∂BβCK?≡+∪WK/→h4*}s∃βONkC3eπ≠/'C~βS=β&C∃β;/CQβαbsnααbβy≥β␈⊃βαqwZα↓+r9βS#∂!β↔>K;Mβλh+7?'+3∃mε;?SF+IβC∂≠O↔Mε{[↔Iπ##∃αe"⊗bqπ#↔cQεQβSF)β↔>K;;'v9β?→ελ4+7}#W3∃ZβS#∃π##'K"βCπO≡+Mβ?6+IβSF)αrR-BqβS/CQβ'rβ¬αr∧
N∞εeaβ∂?nk↔;QXh+π;"βS#∃εcπOQbβ←#'≡Aβ'Mπ##∃βn{OQβNsS↔K/≠S';:aβ∨↔'→βS#*β;↔c"βS?/.qβ?_hS¬αr∧
N∞εeaβS↔G!84(hR↓α/!β≠'↔≠Qβ←*β;↔↔"βS=β≡{;O'&+IβSF)β3?:k3↔[.aβK?/#';∃π##πQπ#π/↔~β∂πK*β?_4W+C∪π&K;≥βε∨∃β∞s⊃β3Ns∃β;.k↔K~β≠?Iε+KK?∩β7↔O≡∨↔Mr↓αS#O→βK?/#';∃ε3O<hS7π//→βOW⊗)βS#∂!βS#*β';C/!β↔;'→β←'&Aβπ9ε+;⊃7}17Cπ>)βO'>sπ19ααS#∀hS∂?;6+;S'}sMβ?2αrR⊗B;Mβ'wβWQβ⊗{WS'v)βπK*βWO↔"β'9β≡K7C3N3'↔⊃ε3?K5Rα←#↔ph+s3Ns∃uCbaβ'QεKMβSNk∃βSzβK↔π"β¬β;/9βCπ>)9απ7#↔Iβ
β3';*β#πMε∪↔↔9εK;CW"`4+↔O##↔IπcW≠6+Jo3Nk'Rwbβ'Mβ
βs∂π↔∪'π∨)CK↔S/∪;q1ε{9β¬εs?K7∞aβ3'v)1β?∩β←∀4VCπ[∃πc3'7O!uCqε;⊃βf∪W≠≠/∩mBun3?K4F3↔↔∪baβ'9π;#'∂Bβ∂πO*βS#'~β'Mβ&C∃β3Ns∀4+&CπQβ.s∪Mβ
βCπ∨*qαS#*β[π3.)β?→πc3'7O#qβ'~βπ3←∂KMβO'∪'∂SgIβ3↔∨→βS#∞p4+sf{;≤c↔+_cOOS∃5Gbaβπ;"βS#∃πcW≠6+Kqβ∂∪KπeεCπMβ∨+O∂⊗KCSMε+cS↔v#';≥π#<4+fc?;≤F∪W_c≡Kk↔qbβO=βO!β'Mπβ?OON∪3∃β&yβK↔6+IβSzβsW63↔JofK7'Q[∩wqβ>KS#?/ 4+?6+KOS/βC';:βS#∃ε∪?W;'→β?→π##∃β∂∪Kπer↓"S#*β↔;⊃ε{→βSF)βW63↔IβO→βWO. 4+∪/∪';≥πβ#πO*βS←=π#=β∂}sSπ'rβ7?∪,c∃β;∞k↔Mβ∂→β←∃ε≠?;[-∪QβSF+44+&yαrR-Bqβ≠␈∪59$hP4*↓d;3?∞cM99t↓yt4T↓πCπ>)kO'G#↔↔8F∪'SMZβoS#*β;W7⊗+Iβ?2βS#∃πβπ∨∃ε≠WKK.sS3Eε∪↔';:βK↔π'p4*↓∞c';∃W≠'cS.+8cO#Emβ←##∃βw+7↔∩β?→β&C∃β∂/∪K↔;"β3';*β?9β&C∃β∂/∪C↔;"βCπ∨/p4*↓∞c'7'!QA9;f{;≤c↔+_cOOS∃mβ←##∃βfOQβ≡CπKπ∨#↔Iβε{G'SN{9β?≡≠WC'.!β'9π##∃β↔+≠≠↔↔p4*↓∞c?
iαq;3?v8cW1CG'k+YβoSF)β;↔G!β∂#∂∪π∂S/⊃βC?≡KS'?rβS-β⊗)βK↔∞!β≠K}iβS#*βW≠6+Cx4T↓π'≠π+Pc#∂_c↔;&+⊃iβ⊗{?3↔∞qmβ@=_bπgN.V/bD
FF/,TεO~
mrεn},RεNn∞W'pQ!PTα
Mε*πL,W≡∂A
⊗wπ↑OBππ-x6.'↑,Rbπ⎇
⊗≡B|W'~Eg]<X~d/R∞,V∞π∀
Fzπ,\⊗"πMRπ/<Z"?_Q+Bw]xX'rε≥nπ/"D ↔4≥<y,D_=⊂≥42P1→stw7~w3P7Y⊂840\ryP7[2P0w→⊂:;wKεEεE⊂8⊂89≠qrr:\2P92\pz∧4[8:z≥CE12sZw⊂7`0en_input;
page←0; line←0; limit←0; loc←1; buffer[0]W" ;
input_has_ended←fadse;
end;
@ The |get_line| procedure is called when |loc>limit|; it Puts the next
line od∧AS]AkhAS9i↑Ai!JAEK→MKdAα;⊃β/β∪πS/→βS#*β?S#/⊃β[π⊗Kπ3/→βπC¬∪?CKNS↔3Jp4*¬∧≠πKKN∨∃β⊗+SGKrβπQβ&C∃β↔v!β/→ε β3'v)β'Mε≠#π;>+⊃βSzβ¬βOε∂∃8hP4*βαβCK?≤+∪GK*β∨/C
FNvW4π↑Nn∞W'~∞Mε*εl[π"εM≥f/pQ(&.>≥`εN2.V66↑+3¬kβ9Sn
&→Q,\λ≥~]H≠⊂∀[2oX≥CE0s⊂~w8:zε47⊂*~2s⊂-[7z⊂"[2⊂7cλ34v2←α
beginib l@%]Jz`↓iQK\αβo≠'↔≠Qβ3Ns∃β?2βCπ∨/p4(⊃≤&.>≥dεNv>%πε∞|U∪\αqQ HL¬J7ε.=≤⊗bε=V≡Zmw$→Z0⊗→P24i→qz7y≡P80sY`∨≥FB∧Drw→≥FE∧Zs⊂1:Y32y-[4vt`4]=carpiage_returj then buffer[limi@Q;>D@λv~∀∪∃]H~∃∃YgJA%HAEkα3∪↔JYαto≠|ε&iFlX ,D≥~→-d≡z0↔≤ry:≤0srP≠py5P_z⊂2g→⊂7s⊂→4v2␈βE beeif Limit←0; buffer[0]P∨M=aZ1M∃KHv~(∪KMH4∃KYg∀AS]aUh1QCL1K]I∃I?ieUJvAw9←iJAQQChAACOJA5Ce@-εKEβO&K3 "∞∞&/≡]nGpH-≥f∨∩
I⊗v*↔4εf};vβXh,]f#XQ!PTα
Mε*ε∂;Fn~λ←b:ε\M↔&←$
vr¬>L⊗v6},B?~∂;Fn~
8∀LgβH_m⎇<≥=↑Kλ≥m<Y(∞M→(≤∞,<y;ND≥Y<N=;{C!-yH↔¬ouq0*h?H≥l≡h→→.l;≠|\λ≠,≥y<h∞↑λ_(∞>→8r,≥λ→Z..⎇λ≤≤y(_l≥≠→9∧∞~→(Z;→!QY~<L\⎇≠|O∀h→[n$≥~→$Z;→.∀~=λ∞⎇|Z|d∞z=~¬a"U~
≡h→Z..⎇λ≤≤y(~.4≤Y8m|{Z>L≤[→(∞⎇=~λ∞>9YZ,=9;]
O(~~,⎇β"\∞-xX8M≥~=≡$↑(≥
(→P,>λ≥~≡λ~=∞4→Z<N>λ≠~-l(~_.4≠→;L}~λG∀_;Y∧
=≤hm<\⎇↓QX;Y∧
Z;]
∧_z_.,8⎇→..h_<LT≤Y<n8⎇~.l;≡(Pid;Yλ↑w=_<Af&←IkD
{h≥
(∀⎇≥Y[|LA"]Y..z;{D
yH↔¬ouq0*h?H~≡h≤|\z8;∧{y→$∞≠h≤m=<λ≤≡⎇λ_-Mλ_].D≥~→$∞_9y$
8<ZaQ[yH∞>8zλ∀→Z<N>λ≤_,|.C"AQP∂⊃mMxX;∞5KKPπg#"\nL;Y[n,λ⊂λ-⎇:=ε∞9y.L-{{→,≥Nh≡l≥H→>∞NX(~-n≥=λ∞9y(
<h≠l<⎇<\L\∨C"LN[y[L≡≤c"AQPλ⊂πJy=λ
≥Z=EeP∂O!Q\⎇_-l[|Y∧
{:=β∞_9y+|X;≤lWc"Y∞-y[X.Nc"C!(λ⊂∂
>→8z,≥λ_z\zh→M}H→Z-L(→~.,8⎇≠n/(≤_,|0∂O!Q\⎇_-l[|Y∧
9H
∞9y/&∃!
≠
≥:=∂&'*(≥
;C"A≥9H
.9YY.+l↔/$(hJ!¬]9YL↑Vn↔'X lME∀≥~→-a"B",,9z;D∞Y<→,≡λ~9D
;\≥.C≠≠H∞M→;HMf≠[nM~;YaQ@"",]≤y",,9z;D
~;:.Kl∞h.9YY.+l↔7lm|[&l99∞aQB""!≤;Y∞aQB"=-n~;λ.9YY.+l↔/,ms
@ Control codes in \.{WEB}, which begin with `\.{@@}', are converted
into a numeric code designed to simplify \.{WEAVE}'s logic; for example,
larger numbers are given to the control codes thatdenote more significant
milestones, and the code of |new_module| should be the largest of
all. Some of these numeric control coDes take the place of ascii
control codes that will not otherwise appear in the output of the
scanning routines.
@↑ascii code@>
α@D ignore=0 {control code od no interest to \.{WEAVE}}
@d begin_comment=@'11 {as@
SRAi¬DA[CIRAoS1XA]←PACaa∃Ce|~)↓HAK9H1G←5[K@;#j↓≥E∩βoπO≤K%β3Ns∃β≠.+⊃β←Nc1β;␈!βπCε+πKxhRβ⊃β}≠Sπ1l↓≥EQπ[πO∂NIβ≠?⊗iβ≠↔.!β←'faβ;?"βπCC.Kx4Tβ⊃βC∂∪π5vα9EUβ↑O∂'Jβ∂πK⊗Kπ∨∃π∪↔SW⊗qβ←'faβ;?"βπCC.Kx4Tβ⊃β∪␈+3∀F#?Qvα9QAβ↑O∂'JβOCπ≡)β←'faβ;?"βπCC.Iβ↔F≠↔CQεK9βO'∪';∨∨p4*β"β;<c.s∪↔KfK;∃vα9E]Uπ[S#'~β∂?∪*β←'3bβ∃βLsS↔K≡+CS↔"β←'SF{WQβ≡{;≠W≡K?;xhRβ⊃β.s∪↔KfK;∃vα9E]Yπ[S#'~β∂?∪*β←'3bβ∃βNsS↔K≡+CS↔"β←'SF{WQβ≡{;≠W≡K?;xhRβ⊃βV{'9vα9E]]π[πO∂NIβ∪↔f+S∃β>K31βv{Qβπ∧εε.∂/aPTεD∂π⊗.c∞&}n≥gTα;&ε2π↑=⎇g'⊗⎇Dε≡}LTε6␈$¬bw8λ¬ewd␈`hTDπG⊗\cπ>NLL6∂⊗GXα;∪εDπ↑≡⎇nG⊗}D6}&Tf␈∩Bw\λπ'r?aQ$ε"∂∞&.1∞O↔ε/}-↔&/'Xα;∪εTπ↑≡⎇nG⊗}D6}&Tf␈∩Bw\λ¬gr?aQ$ε"
HUAG>N&NvwXα;∪εdπ↑≡⎇nG⊗}D6}&Tf␈∩Bw\λ∞Gr?aQ$ε"∞MεNq∞>ε∞≡WXα;∪εtπ↑≡⎇nG⊗}D6}&Tf␈∩Bw\λ¬Gr?aQ$ε"
M⊗v).&.∞7Xα;∪⊗∧π↑≡⎇nG⊗}D6}&Tf␈∩Bw\λ¬wr?aQ$ε"-⊗9FM≥f)F.,V∞[X∧s∪∀∂6≡}nN&}b=v&*mw∩εEg\∧D7r?aQ$ε"
mqFf≥lQF↔,\⊗[l∧v#∩∂<6}wN-vbε=|F*εm}"ε¬Eo4∧α?dwph(Bππ<↑V&y∞<VnKX∧s∪4∂6≡}nN&}b=v&*mw∩εEg\∧π?b?pQ(ε"εmz&n∂GXα;∪⊗Dπ↑≡⎇nG⊗}D6}&Tf␈∩Bw\λgr?aQ$ε"LV6Nm≡FN}gXα;∪⊗Tπ↑≡⎇nG⊗}D6}&Tf␈∩Bw\λGr?aQ$ε",V>Nc∞ε∂≡<≥Clαv&∪2π<=vw'-⎇Bε≡|LRε6}$ε¬bo8∧ππd␈`hTDεn}N]F)Fl≥V+l∧v#:∂<6}wN-vbε=|F*εm}"ε¬Eo4∧βOdwph(Bπε≤|QF.lGTα;&&απ↑=⎇g'⊗⎇Dε≡}LTε6␈$Vv"]|boε≤|Wph(Bεv↑sεn}N]F+l∧v#∪
∂<6}wN-vbε=|F*εm}"ε¬Eo4∧¬D∂b:ε≥lBε¬Eo4∧α/dwph!Q$α∧=⎇g'⊗⎇Dε≡}L↑2ε∂,Tε≡}nlW↔&\Dε7⊗⎇Tε∂≡=≥∩π&tBw]xX∃4/d}2εNnLW⊗V≥DhW,↑π⊗/<Yg&∂M≥vrε/∀π&FT∂F≡}nN&}a9v&/D∞&␈/M≥f*pQ!PTπ∧g.v>M⊗}r=vw'-⎇AF≡|LRDα≤7&∂≡=≥⊃F≡|LRKV]≤vG!-↔'≠4∂6≡}nlW↔"∧L2 H!≤⊗7&↑$¬bw8λπwpQ(&.>≥dε≡∂<Tε~ε|aPR∀λ∧#Rε=⎇g'⊗⎇Cε≡}L[r∀∧∧'2π↑∞≡V␈&\@rε∂D∞6N>oaPR∩t'"αε=⎇g'⊗⎇Cε≡}L[v}∨L≥CZπ>∞&.≡\LW~ε|>F∞b=vw∨L≥g'pQ$"α∩NL⊗⊃F\≡&Zb%$#Rε=⎇g'⊗⎇Cε≡}L[vv/s
V}']LSZπ<,V>Nmm⊗v:
|bε
lW:ε]|G.f←aPR∀D%B⊗"'$ε≡}nN&}a9v&-|LV6Nm~FN}g4π↑n≤>&zεL\fNv≡M⊗}waQ"∀∩%D&2∪$λ6}wN-vaF=xF-}mxM\=∞`∂<[x[,≡λ→→,m;Z5
≥{←C!$↑hND{{]∞-{ε_m|→3pL\z;F={;9-n∞h⊗l,9z;E\{{;,]]λ⊂∩→v4vt]2y?εB⊃?⊃≥λ1ww:≤4πl_codeO@∃]H1G=[[K]PrAgKαs⊃7∂}k7↔nDε&.M≥VO&↑/`hR*∧"b↔∧'"ε≡⎇nG⊗↑C6}&Yx&.>≥cπε∂<8⊗cZ∂;E∧
88∀eb∞LWGλ~;D∞9[X-\9λ≠-|≥;→/A"HADπH_smn≤[{β{y→+⎇Yz;G4≤xp↔[1pz2[0z2P≥;wP:≠urw9←εE⊃∞λ≥⊂1g[:97vε1wr2Wvwr:[2L70[rX {beginning of a moduLe name}
">": begin err_print('! Extra @@>'); contrkl_code←ignore;
@.Extra \a`)|~∀∪∃]HvAmK]HA=HA[←⊃kYJA9C[JAMQ←kY⊂A]←h↓EJAI%gG←m∃eKHA%\AiQ%fAoCe|~∧EPDXEhλtAG←9ie←XaG←IK⎇) 1MieS]≤vAg9Q18Aα∪?aβ>KS#'pαrBε≤~ε3XhQ ¬ Rβ∂?;'∪?0c≤¬v&-}Yf&/-M⊗v+47∞∂DλF.6≥m↔&N⎇dε&F≤␈`hR't#Rε=yg'⊗⎇Cε≡}L[vvY∞]f&/-I⊗v+4∂7ε/<X
∧→9P∀[4z4w[⊂36 !g}¬
"↑": @
←]ie=X1G←⊃K?qe∃H1e←5C\vAmS]IK`AK]iIrAi↑↓EJAieaKgKβ!β;?⊗kπ33Op4) R⊃iβ∂|sSK?aC∂?∪-{cK↔1C←'3&≠πK⊃Zβo';&+aβ↔w#Keβ&yβ∃εK9βW≡+Aβ≠⎇∪7πSph) 9∪Qβ∂?w#K/0F≠?∪⊗⎇CK↔_G#gC↔?∪'S↔∪Yβo'v#↔aβ.sSKeπ#=β*β'9β'KC↔←⊗KS↔I¬#gC↔ph) 1∪Qβ∂?w#K/0F≠?∪⊗⎇##'8G≠Cπ∂+YβoC/#Eβ↔G#K¬β∨βπ∂∃εK9αr∧
N∞εeaβ≠∨⊗kπSXhQ = Rβ∂?;'∪?0c≤{∪⊗␈fK;∀c↔∪↔π-Zβo≠?⊗≠↔Mβ.s⊃7?2k3';*β'9αeαεN∞bqβ≠⎇∪7πSph)
∪Qβ∂?w#K/0F≠?∪⊗|∧&N9
I⊗v).&.∞70π↑6},6/~Yf"n|eVfNlTε∞vD
6}nT∞7ε∞<Tε⊗/=_ ↑␈C"D%hNH={]≤M⎇ε_slL7{[c
α4w2F192pZ]P=qXw1rv≤P2w2ws⊗v~w2P2≠{w⊂:≠P9tw→v2P9\0qr␈βE⊃≥Q∞⊂1wg≥97v_wr2o\9rzr≠L9rvZ]P=pXz9P6~urP0H9rvtXwv7w⊂1:jλ4yP4[;4ytX62␈εB :.~⊂∨ ⊗)\2qtp[⊂1ww≥97v⊂_wr2yH0v67]rr⊂7[6<P;Z2w⊂2→q:ssZw3`∨∞FE7z~2y1p\ryP1→stw⊂→y98≤4w:∀ PP*w~w7{wλ1ww:≤7v⊂1[r2STNP1ww≥97v_wr2oZsw7y→]FE *w5w≠{w⊂1[w:97[⊂1wb→`∨εEαrw2εB2w21Xyry]CE2w2∞FEεE⊂⊂$s⊂↔↔=kbPk"␈⊂~yP1w[x4v2Y⊂;tz~⊂22q≥sstw→P1wv[pw29K⊂7w2H1pw⊂≥y4z2CE.↔=P _␈_w2⊂.=` _∨⊂:7P≥:y7⊂≥90qt[3P7wλ0w2⊂≠s3↔⊂βEαE ∂)x2qZpv⊂![w:97[⊂1wb→yW↔↔⊂∨≡FE→2q:sP: ∨ FE⊃_λ≥⊂12Ytw⊂:≤0qtw→os0v≤r]P1[w:97[1wr→otsw≠y2]FB∧rw2∞FE⊃_H≥⊂12Ytw⊂:≤0qtw→oz9:Y]P1w[:97vε1wr2Wtsw7\2]FEαrw2≥CE3zq→rεEεB ⊂*4→P>9uZx64[q7}⊂≤7zz4[2P4yH:yrrλ7w⊂:~2P34\9z⊂8_yyP:≠P9ut\⊂:49≠zstεB87y:~ww9P≠s⊂:4→P4w8≥z⊂:4_z⊂0y→P77zλ4w⊂0[<P6wY:v2yK⊂4W2K⊗⊂:4_z⊂89→qrr2CE:42H34y9]⊂6wr≥v2P7\⊂:40]⊂4vvYr4pz→v<P3≠v67{H:42P→w2⊂7Y⊂0P8_srP4[⊂:42CE34v→W⊂ s≥2y⊂:~4yP8≤7qrr≥y2P4_yP12Yw⊂1p[62r⊗λ:42P≥0v:rH7sεE∨4w8:]40yF2w22Y>⊂;t[6⊂:2[6⊂;t→z42yλ7y⊂7≠z⊂0P≠2{P6[r:v2H40yFB0qz:Xv6<P_2rw⊂→7zw2εEεE⊂8⊂89≠qrr:\2P9uZx64[q7]P≡yutxλ:7P7→|:⊂6[r:v2←εE60X2v⊂2↑4z≥FB;0y⊂_]0yqZtL1wY2]P=Xt0y0Xz2y⊂→7v67]tw3P↔↔=` ∨?εE1→stw⊂≠7wx⊂~s⊂67X←64vZz⊂:4→wεE∧Bq2st[⊂3rzε64w2NFE∧DZs⊂1:Y32y-L.↑s7\6L32Yr⊂:4→w⊂4cλ4w8:]40yF2w22Y⊂:42[⊂92z≥y7εEαDDrv≤pP67XoX]FB∧Drw→εE∧r[9rDq→stw⊂_:s32\-v4vZz∃XnWQ ⊃∞FE∧D]t4v2H1:s3→y-v'XnMQ ⊂⊃⊂27H4w1i
67qTNFE∧DZs⊂6'XN64vZz⊂:4→wεE∧BDq2sZw⊂6'Xov7qJY≥P1Wq:s#→y-v7XVXn]CEDDZs⊂∀1OQ⊂⊃∀Gβ(c=tab_mark)∨(c="*") then return+
end;
end;
exit: end;
@ The |skip_TEX| routine is used on the first pass to skip through
the \TEX\ code at the beginniNg of a module. It retqrns the next
control code op `\V' or end-of-page found in the input.
@p function skip_TEX: eight_bits; {qkip past pure \TEX\ code}
label @⊃←]Jv4∃mCd↓FuKS≥Qh1E%ifvAmG←]iI←XAG=IJAM=k]I|4∃EKO%\AY←=`AEK≥S\AS_AY←FyYS[Sβ!βS#.p4(∧N∪↔∨'rβ∨πPFc';∃Xh($'N1βW63↔JmαSn6}-QF6\XBπ&]`hPα"",,9z;D
≠xwf↔h_wn9y&]Y∞h⎇⎇≠hM{Y.aQB"",]Y∞c!!"9;LGc"B,.9YY.+{~;-≡
l7+tP⊂λG1"B<L↑→8=∧wx],lY<VmMxw.d
;X|E
≠xj'1"B:,d_o(ODH≥~]H→{nMh→≠ml.c"A≡;]~-D_o HλλNc!!:9H
Mxg≠
≥:=λ∞M→;C!!"8Y,⎇;H_k|{{]∞-{ε_m|→*_N\YY<K=≠xw%↔h~;L>J≠≠l5.h→m}≠h→
⎇Y.c!!"9;LGc"B,]Y∞c!,≠{Y'.zz<β
⊃6↔l7c"Y-l∞c"AQPλ∃
(∨≤m=<ε_m⎇;9;NOλ≤[n↑~;Y$
<h≥.<9λ≠md≥~→$Z<\nD≤_<n4≥≠h∞=z<β!.~≤[n\zλ↔
H6↔λ=y→(
≥H↔∀λ~pp3D_{{-\;]≤ed∃~→$∂_X;∂D≤_<L≥9=→.!"]→-M≤h~
}h≠8-o(≠→,nλ_\L≤y<h≡Y(_.>⎇;9,D≥≠h
=Y(,9;H∞<x;[L\λ≥z]C"U
<h≤M}=~;LT~<h<;≠→,Eλ_;LD≥~→$∞≤[xl\≥<Y$∞Y=≥.-\h_${|\L↑|≠{LM;Yc!.X;≥,T≠yH∂LX;∨∧=λ≥
(≤≠m≥]λ∃
=λ≤l<;[Z-lh~_.4≤⎇≠n∞→9D
xx;Mm;Yc!.⎇≠|∞4→:=
<H_.D_(_NIh≥
=λ~-n≤[y∞\y<hJ⊂4ph→↔λ≥←≥β!-;H≥m
8zλ<<y(∞M→(≤L↑≥<[L\λ≥X-N9(~.∀≤≠|m≡~=Y%D≠|H
≡λ≤⎇
}≤h_.D≥~→!QY;Y∧
yH≥
(_{m]9;]¬D~;H∞⎇~8z∧x<y$∞~→(∞,=≥<Ml9λ≥L≥≥9(
≡h≡Y.-kC"JM→(≤l<;[Z-lh_;∞=h≤⎇
}≤h~-d_;[m\;≠⎇.4≤z=∞\=~;mnh≥z]H≥~T_{{-\;]β!,≠y<md⎇λ→-lλ≠{D∞~→(∞9y(
}H≥z]H~5∧{{]≥;\h≥H~;
L9x;∧∞<y#!-yH↔¬op⊂∨ED∪{Y$∞z≠⎇-Lλ_x-Mλ∨≤m=<ε_m⎇;9;NE*?∧∞z→;DY9z-mZ;YaQ]≠h∞<x;H∀_{{-\;]AQC"P∞∧→];L>~;{D∞zz<β{{;,]]
⊂∧≤X;∞L]9z≥βZ=≤e↔Y:9m∞ε_Z.Nnh≡n=z<≤d∃⊃6A"B8m|→(~-d_{{-\;]≤oa"[_,,;λ→
⎇Y.c!.X<H7X<xm≥&_{lL.h≡nM→(_n↑\Y;ND_z_.,8⎇→./C"PL\z;H
M{|λ,9z;D
9H≠
|o[~-]=λ≥
;C"A⊃8Y9m≥H→y.C≠~;LWc"B!≥9H_N\YY<K6↔/9M}[&→L\9λ≥
;C"A⊃"8Y,⎇ne;
end; {an error message will occur in phas@∀Aio←x~∀α∪∃]Hv~(∪G?EUMMKemY←G:lAS]Gβ⊃#3?~Il4(NK⊃β
h∧'b∩∞Mε.r⎇w&@h→≠ml.c"A_∂⊃≠d∞|→0m≤;λ∃
;Y|d∞z→0↔λ>1↑@"@@", X", {", "}"|; |goTo done| at end@>;
end;
done8 skip_coMmaft←bal;
end≠
~∃Ay <AgaK
SCXAβ##'≠?→β←#,qβs
h∧$∧α%ebdβgQPVNd3j∀λ∧"π&Y`hP≤,V>Ndλ5}↔\h L↑T{∪l;.c"A≥9H
3hHλE⊂λ_fnL8F≠,≡X¬TB
1IQ∃λα) then i@9GdQYα{
$4PK↔3O(K↔∨Nqβ∪↔≤ε"FF|5∪Zε,≥E{β4v␈&tF}vW1PPH≤]f"π<≥bε/.-w∩ε\↑7≡∞|Tπ>NMDε}≡>↑"εNd∞εF∂<Tπ'>␈aPPN]l@hV]N6*ε≤dαF≠T+B∩HE'.6l↑%Nf|;QZ∀λ∧"JπMVrε≥l7∩FM|2Hh,]G≡*
_bε≠T/2∩πMVrε≥l7∩F,≥BHh,]G≡*
≤bε≠T/b∩πMVph!≤&.>≥dε&.>%ε⊗∞E↔0hP≥≤bε⊗≥GSαπMVrε⎇}FzεM⎇f+XQ!⊗.vAQ dα$ ⊗wπ↑NFNvt∞FF*
lWGα∞Mv↑.eaPT∂4∞7&∂L\Bε∞-}f*bEg]<X~d/r}4εn␈>DεNwL↑&/∨M≥f:εL←εN≡≥Dπ≡≡≥mfNvt∞&␈/M≥f*ε≡4π&FQQ'f>↑Cεv/∞OBε7]l7&N⎇dπ&F≡@εNw∞↑G~πMRεv←∞Bπ&⎇<Vrε|d¬e∧~84eD
⊗wπ↑Eb∧F}|W6/%APWf|↑AFv←∞Gbε≡4εv␈DW∨ε\=⊗∞fO∀ε≡}↑
FN≡≡LV"pQ!PU&Tπ⊗/>]G"ε|dπf>↑Cεv/∞OBεO4VO&↑"ε∞d↔≡≡≥∀ε≡}LTε6␈$∞6}nT∞7ε.=≤⊗bε=↔⊗∞>LW∩`Q-w∩ε≡DεO~∀π∨ε\=⊗∞b=v&*∞,Wπ⊗↑<Vw&≥lrε
∞⊗O∩
|bε≡≡&∞∨L↑'~αUf:rD¬bw7'Wr8Q-w∩εEgZrodrJb
}"εOD
↔~πMRεw]\W⊗N4∞f∞g\Tε≡}↑∞W&.D'JπMRπf=⎇g'⊗⎇Cε≡}L←@hW∞-v≡.N↑&*b
}"εOD
↔~ε⎇lRε}d∞FF*mvff}⎇⊗v:∞>ε.≡≤≥Bε≡|LW≠PQ!PUg≡=6O¬M⊗v:∂LWGε⎇lVw'G$¬&FT¬btTtεNr∀π⊗.≥Dε≡}n>F∞wEaPPh+O↔≡↑≡FF∞ltπfNL]g&Nm≤W↔c$ ⊗rπM
↔~ε<≡6*πMRε>M|&∞b∞l↔⊗N≤-F/~∂M⊗!Fm≡'∨'D⊗v Q/FN!
Mv∨b∞⎇⊗fb
↔6*,V.r∞<W"πMtπ&FT↔ππ-}π⊗N≡LRπ6≥NV/~
lV.&\Dε↔J∞Mε(h/M⊗!FM⎇v←/∂Dπ⊗␈↑M⊗v*aQ hUO≡6↑OMε∞vt∂G∨'-≥f?c$ ⊗rπM
↔~ε<≡6*πMRε>M|&∞b∞l↔⊗N≤-F/~∂M⊗!Fm≡'∨'D⊗v"∂M⊗!FM|7`h.⎇⊗fb
↔6*,V.r∞<W"πMtπ&FT&.>≥mfNvt⊗v"]f&NluWεg↑5V}vT
F}≡≡M⊗}w4
⊗rπMRε↔\lf/∩aQ%&FT∞7'⊗≥lrε.lN2π>≡Mαπ&Tε6O.>Bπ⊗\≡πε.≡,⊗v≡T
v2ε≡N2εNm≡FN∞DF.f≥]↔&/'4π&G↑5@hVm}"ε/≥WεfUAPR"KEg]bzMεO~
≡6ub{Dw"ε∀∞6Nv⎇LRπ∨N-⊗v=D␈b" Q.vNfD&*πN,V∂&\Dε∂~∞Nvzε=⎇g≡.>↑FO6T∞7'⊗≥lw~b∞Mε*εm≡'∨",VNvtBw]DzFFO4
↔≡uD␈bph!Q%gO==↔¬fm⎇⊗v&]nB∧7↑.FF/-]w⊗*D∞6}nT
v"πMRε≡⎇nG⊗}D6}&↑4ε≡∂↑<Rπf|↑AFv←∞GbπMqPWε≥<Rε∞LM↔&N⎇l⊗bε≤>FN}n7 hPQ+GO≡=≡¬fF≥lrπg∞,V1G-⎇V∞wEDπgG,\aG>≥LF≡∂,OB`h/Oπ⊗.c∞GOε↑}&O&↑/BbπJHUAG>N&Nv␈G"¬&Tπ6∞N\W~ε|aPWf≤Cε6O.:Gbε≥lBπf≤Cεf}?Dπ>NMDε⊗*∞<W"π=tπ&F≡Dπ&FT∞7'⊗≥lrεNd∞↔./>M⊗}r≡πε.≡.0hV≥dπf↔\lf/∃=≤AF6≡.7"re
⊗!FM|2k
≠←Bph!Q%gO==↔¬f≥f:πM]v'.LSεv∞\←CR∧≥dπ&F≡4ε≡∂<Tπ&FTvf},≥Bπ6≡-⊗∞⊗LTπf∨↑#εn}N]F/b∞⎇⊗f`Q.ε}NnDπ&z∞Mε*πL/↔&)∞>F∂↔ODε.wN/∩ε6}$π&FT
V}']LRεv≥\Rπ&≡BεF≡4εW/>Dε⊗.]dπ≡≡≥mf."aQ hUO≡6↑OIf}NlLVw" ≤bπf|↑AFv←∞Gbπ<\W~εEg\∧∧∨b:ε}$ε¬bo8∧β␈du@hV≡Dπ≡/N4πgG,\aG∨⎇≡F≡GD∞FzπLLV1FmL⊗?b
}"πV↑-rε∞lDε>}↑4ε}r∞Mrπ&Tεv/∞Dπ&}<]bph!Q$ε"←πε}l]g#l∧v#βα∂;Bt*
}"¬blTε6↑MMw>Nltε
εM≤vO'aQ$ε"∞>GεNlsTα;&ε∩π]Jλ∃≤≤→KBπ∨N-⊗v:
}"¬bo:t,↔d∞π⊗.=⎇Wπ/L\Bπ∨N-⊗v?aQ$ε"
≤F.wM≤fN/'Xα;∪ε$π]eλ~4≤KDεN&]nFN6≤↑"ε␈$
&/≡↑.f."∞⎇w⊗'aQ hT¬Hvf},≥G~RehβshQ(α∞∨↑#εn}NXWH≠X-\&≤≠m≥]→<G∀≤{X-\(≠p∪λ6sr:[2P5 5st scanne@⊃x~∧~)Aβf↓←]JA5SOQh↓KqaK
hXAy≥Kh #v+cC@Dλλm⎇\z0→]9P6w\z6<P≠s⊂0@_4sP9]tz1tβE:40]⊂190[1t2`3 to @QQJAm¬eS←KLAgaK
SCHAα≠πO↔~βS#π ∧ε≡∞d↔⊗O<U`hPβ"PD≥<ε∞Mh∧⊃TO↑QVI
⊗⊃VIV⊃VI⊗⊃VYT⊃VI⊗⊃VHNV⊃VHN⊗⊃VXMT⊃VXMα,#-15,#-⊃4,
#(
bf0FP∃E⊂a¬%E
a¬%Eαa
+∃D2kBD5S:b5Vbb~VUB~@-λeVkλk&%λk,%Dc"C!(≤λ→N]X⎇~-⎇H→y.C≠Y>∞GY:9m∞ε_Z.Nnh≡n∞[y≥,<<h≥
(≠Y/∞λ~;N∞=λ≥
⎇y;←AQ[_8L]λ≤Y.>_<]¬L≠{Y'1"]X.$_nY-≤z≥ε-=≤nd∂⎇~→$⎇<\L]]λ⊂m<X8nL<←C!(λ9∞L]9z≥βZ=≤g4≤⎇~T≠Y>∞D_z_.,8⎇→./C"P∧≥K⊂λ-7LKMM{Yy.>ε≠X-\,¬P=Zw24qYyP4w≥7P>6[r:v2←?εE!→stw⊂≤2yz0\:≥⊂4Y⊂67qO64vt]⊂:42[⊂3rzε44w2NFE1oX:s32\-v7qW]P4w_y∀6'XT]FE_pyrP_P7sεB⊃ Q,up⊂⊃i<PE4DαI1¬∩cW@@∞MrB↔$%∪B∧πHv/"≥bεNL]g&Nm≤W∧βg1PR∩t ∧⊃⊃⊃: @<Get a String@>;
"@@": @<Get co@9ie←X↓G←IJ↓C]HAA←ggS YJA[=IkYJ↓]CKK|v~∃↓i0iyyπ←5aeKgLAio↑5gs[E=XAG←5ES]CQS←]f↓YSWJ↓A8]vh{|Oyv~∀λ@DYi¬D1[CIVtAO=iVAe∃giCePvAwS≥]←eJ↓gaCG∃fAC]⊂AiCEM|~∃M=eZ1M∃KHtA
?aCO∀1K]Hl~∃←i!KeGCMKfAI<1]←i!S]N~)K]IG¬gKfv4∃IKEUNASL↓ie←k YJ1g!←←iS9NAiQ∃\AIK kN1Q∃Y`wmWOk KI↑4∃OKha]Kqi⎇Fv~∃∃]Hv~(~∃A9←iJAQQChAQQJAM=YY←o%]NAG=IJAgUEgiSQkiKf↓8]w↓↓9w|A¬]HA89w↓↓9y|AM←HAiQJ4∃eKgAKGiSYJAG←5ES]CQS←]f↓A8]v U|NA¬]HAAp]vTSxN\AaaYSG%hAEe¬GKfAMQ←kY⊂AEJAUgKH~)M←dAq)18↓G←[[∃]ifA%\A9!¬'πβ→pAiKqP\~∀~)↓HAG=[aeKMfPFRt{EKO%\AG>vAS]
dQY←RvAK9H@~∃yπ←[AeKgf↓io↑[Ms[E←0\\]xz~∀D8DtAS_AEkM→Ke7Y=G:zD8DAiQ∃\AG←5aeKgLQI←k YJ1I=hR~∀%KYgJ↓SLAEUMMKemY←G:tDRDAQQK\A
←[ae∃gfPEtDRv~(DtDt↓SLAEUMMKemY←G:tDzDAQQK\A
←[ae∃gfQY∃Mh1CIe←nRl~∀DzλtASL↓EkMM∃e7Y←
:zDzλAiQK8AG←[AeKgf!KckSYCYK]
J1gS≥\Rv~(D|Dt↓SLAEUMMKemY←G:tDzDAQQK\A
←[ae∃gfQOIKCiKH1←d1∃ckCX$v~∀DpDtAS_AEkM→Ke7Y=G:zDt@AiQ∃\AG←5aeKgLQYKgL1←d1∃ckCX$~∀∪K1gJAS_AEkM→Ke7Y=G:zDxDAiQ∃\AG←5aeKgLQ]←haKckC0Rv~∀λPDtA%LAEk→MKe71←G:zλTDAi!K\AG=[aeKMfQEK≥S\1G=[[K]PR~∀∪∃YgJA%LAEk→MKe71←G:zλ\DAi!K\AG=[aeKMfPE6λRv~∀λTDtA%LAEk→MKe71←G:zλRDAi!K\AG=[aeKMfQK]⊂1G←[5K]hRl~∀~∃Ay∂∃hAC\↓SIK]QSMSKI|z~)EKOS8ASL@ QFzE∀@R>QzEJD$RλAY=F|bR↓iQK\4∀∪SLQEkM→Ke7Y=FZe:pDrDR⊂QEkM→Ke7Y=FZe:tD`DR↓iQK\αβ∞␈↔Gβ?;↔w!d4+N1βO-CC?;.sQβSF+84λN∪↔∨'pβ∪↔∂∩C3/
KYβ'⊂F3'KO%{3/
β1PPO,↑ε.∂Dλ
-l|J≠
|j.hKxX
`&der[loc]+
until ((d<"0")∨ ⊂Q⊂|DbDαH⊃#⊃b∩¬ %Iy!#⊃p∩a $ C⊃qλ⊃%$⎇F!yi∩I$↓C2#λJ.aQ@∧qoZp2w:~s0 eR8εASHaYP∨∞βyF}≠1Q N.βY≥CE2w2βE
@ A sTp¬SMNαβS#π ∧π∂&≡.G
ε≥lBε.lN2π>≡Mαπ≡≥lvf*
z"ε&}\&f*∞≡V␈&T
V∂⊗α|h
≡c"Tl<9[Y,D_↑(∞M→(⊃M⎇≠≠um≥Yh≤
≤8y(
|H≥~T≤≤[l}X;+AQA"PπHβrz⊂_P9z9~w3`∨∂FE12Yts⊂4Y34y≤z/v'XVX]FB92x2Xz⊂2/X:s3"\α[loC]; iNcr(l@=FRf~)SLAYα{
{3Lk'Qβ&C↔8Q!⊗⊗.⎇_D<XF∞∞Z;]¬∧βPP)]94w3H1ww9]0p∞t didnπ't eNd'!;
@.Strang consta`≥h↓ISI\α;Qβ↔v"↓x∀PK3 >9x
≥8∧z; d←c;
↓eNd;
Unpil d9c+
λid_loc←l@=FvAG⎇gieS9H
l4T∧Vv Q!P@(λ⊂9NL<H⊂⊂[⊂.↔=P 8∞ Sign Has been sCan`≥Kα!1βSF)β;↔G!β∂#∂∪π∂S-⊃β@&]H∞P:yFB9t2`4her @QQKeJ↓SfA[=aJAo=aVAi<AI↑\4∀∩*βb∨πQ∧≠?;S⊗{1β∂|∧F*ε≥lBπε|>6N⊗LTεn}LXT≠X;,X∂K#!Y9z-d_wp⊃[w:97[1w`$e(bu@→IKe71←G:RlAS]GHQQ←F$v~∃S_AF{k9IKeY%]JAi!K\
∀%EKOS8AqeK_1goSQGQ?I∃L1MY¬JvAO=iP≥β⊗+OSπ↔!l4(L+;⊂4T+3O∃εK⊂∩ε5]fyG]lF/⊗M→f*πMVph!≤&.>≥`πG⊗\cπ∂>≡L6E[∧ε`]⎇≠h∞,<⎇_..∞c"A≤8π2εB2v1bH4s⊂∀_N*"lε9z94[3TB∧_L|92Y97fXw∀P*~2sεEα`≡)aXw⊂:7H:42P≠2|:⊂↔↔=` ∂? ↔εB2v1`% if c=mgdule_nam`
Ai!K\4PJ↓bO≤∧⊗rπMRεnβy≥-L(≠X-\(_;LD≠8:lT≥_u.β≠;p∩≥v2}⊂≤7tw:λ:7P$] ∨∃FB2s2εBαλ
*αα↓`%<8λ-d≥~→$
8πr:[2P70[pW↔π⊂≥_
begiN @<PUt mo@⊃kYJAαsπ7∃∧¬⊗wεtλ∂
]y→0⊗→mXW.i]|@>9
i@_AV|F↓iQK\4⊂∪EK≥S\ASα1↓#7|∧G.fY=5kj%`λE⊂λ∧6wY8pe[i(
c:βi∩r%⊂BFNβy≥-L4¬u@-2Y5"∞ ) then~∀$∪Gkda[←Ikαc⊗␈C⊗+∪'`Fc??//↓#-5~H4(≤YG<αP1`5p∧1[←⊃kYK∨αk?cd¬v}←↑¬εJKαc"A≤8π2εB2v1bH1zy≠wr:`,e←mod_hookup ⊃VαI`_h,Yf h!Q$α∧]x ∞]→(∪L≥9<h≡Y(∀
L8y0∩λ4s:7H:42P∨4¬`∨IUYKxAαCKπJβ←'S@∧ε≡}n8V∨/M~f*π>λλ,<αyVεB8∧abs, and ca`%ISCOJ5eKi@,ε&w~∞,WεF≤8 ,D_Z(∞tp∞gle spAc`f\ααS#↔⊗)βO'd¬Bε⊗TλMq Xp__qryP_z⊂:4→P12cZw34`.dεA←DαβS#∃∧∧Vv"d¬¬.(≤p∩]⊂:6wY8pe[0X =⊂∧α/<Put moduLe name...@>=
k←0;
loop@+ begin iF loc>limiT then
↓ begin eet_line;
if bufFer[ ]=fgrm_feed theN
↓ begin err_print(#! Page Ended↓S\A[=IkIJ↓]CKJ≤Rv~∃Y!CO∀AK]I∃HAS\↓[←Ik1JA]C5K|~(∩∩βY=G>bv↓O←i↑↓I←]Jl~∀α∩%K]Hv4∀∩∪K9Hv~∀%I?EK→MKe71←G:v4∀∪Y%LAK]⊂A←LA9C[JX↓yO←i<AI←]∃y|v4∀∪S]
dQY←RvAS_AVyY=]OKgP1UC[∀ZbAi!K\ASαs∂I#XIl4(NK⊂∩α@∂$⊂⊃∀OJ2≡z0X6py~TP:4→wαE∧Bq2st[⊂2/Qλ⊃≥P4Y⊂6wr≥v2muKXn↑Aλ⊃⊂:4→w⊂22Xy∀5TNFE∧DYw2≥FB∧vwr≥v2muWor≥FB∧rw2∞FE27[2]⊂ ∂!t2qZP37iλ7{2i≠7w3P≠0vr`∂≥FE4Y⊂∀6wY:pe[k]=" )∧(k>0) Then decr(k);
@ @<If e@9HA←L↓]CKJ0\\]xz~∃S_AHzE↓DAi!K\~∀%EKOS8AI?EUMMKemYWFVE:v~∀%SLAHtDtDAQQK\~(∩∪EK≥S\AY=G?Y←VdvA≥←i↑A⊃←]Jv4∀∩∪K9Hv~∀%SL@Q⊂zD@D$:QH{QCD1[¬eVR>!HzDTλRAiQ∃\~∧∩%EKOS8AKeDaaeS]PP@≥¬∧k?βWd)β;πn)β∪'&q≥∨Q∧+;⊃≥KYβ∨?&yβ∪?v)l4
αr7?∪,¬F*εl≥V*εM_Fr?DλVv$πaPPH≤Yf#XQ!⊗Nv>%εZK4
V}']H +unoQ⊂ ⊃≥@~w1y∀≠5qT]H=w7kH>2≡q≥q32i⊗v7qn←⊂0spZw?εEαrs2εB∧A ⊂⊂≡!t2XuP3'\α overh ←]≤AUC[∃|`4hS'→βYk3/;>+GPcv7∃5∩βS#↔ph('.;'9β¬∪';PFs1!≥λα7?∪,¬F*εl≥V*πM⎇rεf⎇lsRαu↔0hT¬iV}π]HRεv≥\Rπ&⎇tεf↑lxβpH!≤f␈∩
+s
πMtβ∪*Mrππ-≥g"G9π∃↑]|G.fY=%mj↔1P@O∞-⊗w"∧ubrru↔0hP≤Yf h!Q$α∧πJ6≡∞d∞FzπMRεV←∞Bbrhπchh,,V =8π⊂$Y34i≤βt←lOc; buffer[liei@PVc+> ↓Dv4∃oQS1JAEKα3∪↔J↑c?∞tZ∩α↓ ε#=β'v≠A#3|→%l4T¬⊗!FMxλk⎇≠xnaQX9H
MβqW6~vpz then~∀βE∃KSLA∃`Hcπ∪';Q@∧r
∧=yg'⊗⎇Dπ&/∞@ε&NMdr?"]f":↔0εf};x
≥:=εaQPPm⎇]≤[mD≥→>∞D→~9
d⎇λ⊃-l⊂∂C!!9;Y↓QY;≤lQ8Y9m≥H≠⊂↔Xov7qJY≥FEαts⊂1≥s32i⊗v7qVLnMQ∨λα then
err_print('! COntrol codes are forbidden in control text');
@.Control codes are forbidden...@>
end;
end
@* Phase one processing.
We now have accumulated enough subrouTines tk make iT possible to carry out
\.{WEAVE}'s first pass over the source file. If everything works right,
both phase oNe and phase two of \.{WEAVE} will assign the same numbers to
modules, and these numbers will agree with what \.{TANGLE↑ does.
The global variable |next_control| often contains the most Recent output oF
|get_next|; in interes@QS]NA
CgKf0AiQSLAoSY0AEJAQQJAGα{;SK|aβ∂?&)βS#∂ 4+↔v#↔↓βλβ7?∪,¬F*ε}$πε∂,@λ
|H_
]y≥0⊗→WαEεB ≡#v≠q↔↔↔⊂∨~`⊂[2|:_ww:9≠v≥2tYβht_bits; {contrkl Code waitine to be acting↓ka←]x~∀~∃A)QJ↓←mKe¬YXAaI←GKgMS]NAMieCi∃OrASαqβC#∂≠∃β?v)β#π~βS#∃ε3?33␈;';≥π≠SKπN;#S≠␈∪←πK h+?W&c';∃ph(4*βbC#π≡)α%i¬∪↔π⊃ε31β&C∃βW≡+I∂Mπ#↔cQε;⊃β∨#?K∃π##∃β∨∪?OMπ∪↔≠↔⊗+;∂↔≤↓yt4Wβ#πO)C?;⊗␈#KW∃Xh+K↔≡+Pc'wβWQlhS7?∪.c∀c∂|εVw%vπ0hW,↑ε.∂D∞6↑Oβ
FNn-w0hP≥≤b*
_N∞=ε~≡d∧2g→2r⊂:~2wεEαDy2x→pz⊂ ∂)z7y→P1y7\yP92Y2y2w_rP20]0P3'\⊂:42H1zy9→w:⊂&[r:v"P∨εE∧Bzw:4[⊂72|≥1wg≥97v≡\0srL→w2≥FB:s:4[⊂4w8≥z40\L2w2→r≥FE≤40y`%_one←fadse;
@<Print error messages about unused op undefined module names@>;
@ @<Store cross reference data...@>=
if module_count<def_flag-1 then incr(mgdule_count)
else overflow('module number');
if buFfer[loc-1]="*" then print('"')9 {print A progress repoRt}
@<Store cross references in the \TEX\ part of a module@>;
@<Store cross references in the \(deFinition parp of a module@>;
@<Store cross references In the \PASCAL\ part↓←DAB↓[←Ik1K|v4∀~∃↓)QJAq!β'π¬_1qe∃MxAgUEe←kQS]JAMiWeKLAeKM∃eK]G∃bAi↑↓SIK]QSMCKIbAS\↓9!β'
β→8~)iKqh↓[CiKISCXAα∪↔∨'vs';≥π;'S!π##∃β≥+KK↔w!β[πg+∃β?2βs;↔G c∂?w#K?3bβπ;⊃ε≠?;SNsW'≠8h+W;&K1βsv+c@C≡{;SK}cqβ'~βαq:eY≥β?∩βαcY:aβ?Iπ+;S'bβS#∃εs↔cPhSββ7Lc↔OS}s∃≥≥εKMβC∂≠O↔⊃αC%;∃paβs;/CPc∂}sSK?ak∪/KnSq%pα' βfs↔cPF≠?;S⊗{0w≠␈∪7πS`h+←#.qβrB
~∞ε0GCC↔≠bβ'Mβ≡3#↔ ¬Bεv|¬~
≥Yh≥m≥≠λ∩≡≤→3G4_]0~λ4s⊂>≠2|:_ww:9≠v≡Q>λ>εE*\7w⊂"[:9<Vλ:42P≤97q`%dqre assu@5KfAi!ChAi!SfASLAiQJ↓A0∪Y8βCK↔≤∧V&NlqPUEλ~4KDπ&/∞Dπ&F≡@λ
≡h≥≠dY(≤∞-xy0→\rr↔εB∧A*4→P897Yy0vP≥yryP≥42P#_qz⊂*~0z⊂ /ur iNternal co@⊃JA]k5EKef↓gCiSMIr4TεFF*∞,Vf∂M≥vw~∂Kπ,9F≤M⎇8;G-≤→;]
≤X94E>Y{8-oλ_;LD≥≡≤L\F≥z-L_x<LG89→-n~9Z,↑A"Jn⎇;→_l≡Y∨λ≥Yλ∨∂∞Y9F∞O<→5n
=→<G]9→;NM9Z9.¬c"U∂≡→=|M≡→<←∧;Y∂M[|[,≥∂,∨¬d⊂;H
≥<≠∩,\λ_↔¬op⊂λ/dh~<d
;\y..→9λ≤]→<AQU ↑lN9Xu
≥{←K∧ ↑|∞-xy9∞↑Y?K∧ ↑|∞-y|X-←Kλ_-lλ↔ O>X<←Ea"C"H∞λ≤≤M|y9≥.,(⊂⊂*8p3ε∂∞Y9Nd∂{8:l↑h_|M}|h≤L\Y<Y-ly<hm|H↔
λ4pp)Kλ~1]]~9M≤<\␈AQY_8L]λ→>
≡∞c"Nl<H∀π-X;9#∞≠z;NL<Nh∂<(≤Y,l<Y;L<9λ≠L≥9?C!,Y9z-d≥z~-L(≠Y/∞ε_{mn≤[{πL[|[,≡λ→≠aQB8Y,⎇;H~,@⊂∀72↑:λ1w[:97vπtr2w≥4s4r\∀B∀7→|:1[w:97[∞<92Y:<x→{y4z→y∀P*~2sεEαDq2sZw⊂8/Zr67[uzx∀≠2|:_ww:9≠v⊗tb→w:4s~ry∀]H72{L≡92s∀≤∀]FEαDts⊂
4v5m\.↑x9≠qL6 )ie)∨(ilk[p]=var_hike) then
xref_switch←def_flAg; {implied `\.{@@!}'}
efd≠
↓next⊂cOntrol←get_next;
↓if (next_coNtrol="|")∨(next_contrkl="{") then return;
end;
exit:end;
α@ The |outer_xreF| suBrkutine iS like |PASCAL_xpef| but It begins
with |next_contrh∂X6 xExA¬]HAK9IfAo%iPAy9Kqh1
←]ie=X;M←I[Cix8A)QkLXASH4∃QC]⊃YKfAq!β'π¬→8Ai∃q`⊃β>KS!β.k↔∪&+⊃β∂|k7↔≠'→84λhRβAβ¬∪?∂↔'+K∃β␈+S↔HGCK↔→Zβo↔c&+;O'}qβ?→πbBεN≤
0cc⊗+≠sxhS[πIε∪π1k.K↔#PF∪'SMZβoK∞≠∃β3/3↔1βNqβ∂?nk↔;Sph+↔>K9β←FK3∃βv+c@c≤{;SK}as≠?⊗kπQβ&x4('N1β;↔G c∂?w#K/0Z∪m β&C↔9α∧
N∞εaCcK↔0h('↔g≠∀'.;'9β⊗2␈O↑K@c∂}k7↔≠"AE%mεs↔cPF≠?;S⊗{2mb⊃l4(HK←#'f)βπcqAβ∪xh($$N∪↔∨'rαBεN≤
0cc⊗+→l4PH$''2β;↔c!C∂?;'∪?1u↔a βSF+9β∞b␈O/Mc∂?nk↔;QF∪π1$hP$$π,cG*,⊗e[¬0λ∂<;H⊃.97y≥tr6⊂_2P92\7y:2Y⊂4w≤40y`% two↑
∩∩%K]Hv4∀∩∪K9Hv~∃∃]Hv~(~∃A%\AiQ∀A9)a8AaCIhA←L↓BA[←α#W3∃bβ∂K∨≥→βK↔6+C↔;≤∧Rε.nN&N∂4λ↔⊗*
\⊗&*
xMO(→P↔\α the
adentifIers @%\A9!¬'πβ→pAaKqQbAK]
YP∨O,!β'→¬cC 1∧{Aβ≠|ε"ε≡⎇nGε@{λ∃←≥≤h]X{≠n<αrεE~w⊂.↔≡` ./∨⊂∧\ldotsm$\.{@@>} o@HA8]w↓]|IqYI←iMZI8]m↓⎇|8~∀
∃y'i←IJAGe=gfAe∃MKeK9GKfA%\AiQ∀A9(\8]|z4∃eKa∃ChA]∃q`!Gα{;SK}b␈O/MbR⊗CX4+∂∂≠∃β;-CPc∂|sSK?bβ?_∀TεVv&↑-FNvW$πG⊗\cπ∂>≡L6E↑LXaF6L≤sXh-mqG∞βY→.
α4w2N⊂<92Y9{t]1t'X∞FE⊃>λ≥⊂ Ta`f≡92s≥CE<92Y97fXw⊗⊂<≤2s;Zv21p\2⊗⊂ 8p¬KL1QsaKoISiKd0ASOIUYJ1]¬[J`(hP'↔>K9β3|~␈3?~iImβv+c@@8mn≤[s|y=ε
l>≥∞d∂|xp-d≥≠hE↑p⊂πo←C"A≥9H≠L←≥ε_m⎇]≤[mC{;q∞]→&≠L≥9(∃
9C"A⊃9Y0≠F<92c
4r6≠wuzx
52|:ε1ww:≤4πl-identifier );
end;
λkthepca`'α+Eβ∪yC;/SFK;≤4T+;∪∂∂≠↔MlhSW;SLaβ+↔G c∂?w#C >C\f␈⊗\≡@hPβ"P∧λ≥<Z-lh≥~T→→1M≥X=~-⎇H_;LD↔∀⊂*8p3↔∧∞_<]∞∀≠yH∀≠;q∞]→+λ>Yx iH92s"\2s1`%pεACE∀~∃@7∞#∃β≠|ε"ε∞β≠λ
≤→;]
≤X∧ri≤β except @IKgKeYK@Ao=eIfvαβ#/←-3↔I1∧εFF*
_ ]]~0∪~p¬r`&4⊃SLA∧AM@?⊗kπQβ&+⊂⊗NβZ0~~ww⊂ \2P92Y2y2g_pr⊂ %L\ portions enclosed in
\pb; the text of a module name is skipped entirely, even if it contains
\pb\ constructions.
The variables |lhs| and |rhs| point to the respective identifiers involved
in a format definition.
@<Global...@>=
@!lhs,@!rhs:name_pointer; {indices into |byte_start| for format Identifiers}
α
@ When we gat to the following code we have |next_control≥fOrmat|.
@<Store c@I←gfAIKMKe∃]GKf↓S\Ai!JA8Q⊂\\]xz~∃o!SYJA9Kqh1
←]ie=X9IK→S]Si%←\AI<AwyM=aP↔π'aβ?I∧πF&.m→fO&≥yggpQ!⊗⊗.⎇→bπG,\aG∨⎇~F≡E|LV!FmH⊗ 7h≡z-↑≠~0∩Y⊂.↔=P ⊂␈?βE iF jext_contph∂X{⊃KM@'vKS'∨pβS#↔p∧εv/∞Cε≡}nN&}e||W!FlX∞∞A ¬∧b[9rP ∂(97qYyyP0H37y6Xz⊂22Y4s4`4ion@>;
Outer_xref;
∪K9H~∀~)AeI←dA[∃cgCO∃fAM←HAS[aI←aKd↓H ?-\↔"εLXfNv≡M⊗}w4
vNfD&*ε≡>7.∞D ⊗rπ
↔≡(β"P~≥wW⊂']y⊂5 /b in↓aQCgα)β?;*β'Mβ&yβ∪↔4¬⊗v*∞Mε*πM→F@?α⊂7cλ0P8 2operly fo@I[CiI∃H∩+L#↔;SL3'πIbβπ;⊃¬#=β≠|¬vbπMRπflX
c∂≤Y0∪∨⊂97j]4p∞e into thinking @QQChAβ##∀Q(
,L8π:4Yαier↓←\Ai!JAeSα;#A]⊗v"∞8
,L(≠p∪λ842P→αh∂e[¬hAIKα3';≡M⊗}r
_d
Xπp∀↓B~+⊗+G/,¬P∩Y⊂;w`2d.~∀4⊂
↓r¬∪?∂↔≥→β¬β4¬w-+K@↔⊂≥_
begiN jext_contph∂Y?≥Kh #v+c@#1Q&N∩
lWG∧∧1`/nproL=ideNtifiEp∧AiQ∃\∩(L∪↔∨'pβ3#N|¬⊗!FMyv@><
≠M}Y8;¬↔h~0⊗~β[lhs]←no@I[CXv↓]Kn1aaKLQ1QfRv4⊂∪MKah1G←αsSK?e{∨πPFs↔cQXh(''2β;↔c!C∂?;'∪?1w-W'[∞c↔;∂)CG'∨pβS#↔ph($'⊗+∨'→∧s↔cPF≠?;S⊗{2`>|ZAFV←∞CXh!⊃⊗N∩
lWG∧∧1g[:97f∂tr2w≥4s4b\α then
α begin rhs←id_lookup(j`∨e5CXRv4⊂∩∩∪%YW7Y!c;/S1P∞oKG~umβLc ≥←-∞5m}mxM\;∞`
l=f≡∞9J≤M∞j.c!↓ ∧D`)lk[rhq]Wi@1P∞o3G~umβv+c@!α_p↔[897`,←`∂Kha]Kqhl~∀$HK↔;⊃Xh $π,s⊃l4PK↔;⊃Xh#↔; h($(∧∧6Nl≥FgJDλ
m9H∃
(∪∃λ[↔λ⊂⊂[2⊂22Yαifi@QS←\AACeiF↓QCmJ↓EKK\↓ieKCQKHHA]JAQCYJ~∃yαs↔cPF≠?;S⊗{0w.;'8cεO∂πga84!Q$βE>Mw⊗*:&␈∨4∞&.6↑,Vv≡↑4εNr∞Mε*¬J¬brtπ`∂!QZ9H
l>≥ε={]≤M⎇π≠;lN9→&
l99(∞M→;@⊂≡}12sZw80\qpv>λ7y⊂.≠wr:`,e_name|v
begin if next_control=beeif_pascal then mgd_xref_switch[0
e`→g∀A[@?!CcK↔1CG←'&≠"o∪,0c≠∪∞9l4(M∪↔C↔∂!β'→∧s↔cPF≠?;S⊗{1`.β;p∩≥v2L7_vrP 4hef New⊂⊃[=H1ae∃HQGkβ⊂c .βy≥-L*.c!↓ ;Y/∞αλλc@=]ae←αb␈>↑Cεv/∞C2ε@⎇=→.β≤∧92Y≥FE∧]w:4fλ72|:ε1ww:≤αh∂X⎇5←AkYα(c 6≥\SXh!_ -lβ"C!(λ⊂9NL<H⊂_~0yrP≠w2P$_yP6'[urr at eVerything, wa want to cheCi that each
αmodude name was both defaned and used.
αThe variable |cur_xref| will point to cross references fop the
cuRrent moduLe name of interest.
@<Glob...@>uCGkH1qeK_p A→vkπ`c⊗+≠Mmπ[S↔7ε{KπKJβ∂K?∨→βK↔6+K↔;≤∧Rπε⎇≥g&/-aPPh(∧¬&FTf}fM}vNvt∞&.∨↑.6O6T∞π⊗}<XG/⊗QQ'>∞M>2π&∞-w.≡∧∞FF*∞N&.*
|bεn|NVf*
l⊗n/4⊗v"∞
&NwN4ε␈/Dλ⊗v}\≥FN/5aPT¬n,V∨/.9⊗}tπaPPh(
αππ-|6.'↑,Rεn|Cε≡F\92Dα≡π&v∞\Sπε}≥nF/∩↔4π←π-≥g"ε≥mvn∞M≤W4~;@∞zq:9→rP∩8 ?εE!→stw~q⊂8∨⊂:42[εA∧q→stw⊂≠wr1Z2quT≠64w5Vx.T]P↔FE∧Xzy<≤2s/l≤2s-x↔]FE∧Zq⊂7:[T1ziε<92c
↑22cε360sH:42gβE Beginprant_j`_P≤BA≥KYKdAI∃ISMKα!a↓q8I`~π∞-⊗w↓
_ °
.`∞∞X;]¬∧β←∪DNβ
@.Neve@HAIKMαK;↔⊃R↓s .|NVf*
l⊗nβP∂AQ@"1-l∞c"A≡z~3T≠];%⎇<F∂∞Y9J#\→9FMα0s@→5P1`5p_p⊃e∃I0∨Cd¬⊗vZ8
.β≤∧92Y∀X
if Cur_xref0~`↓iQK\4⊂∩βE∃KS@9¬βC';!C; "∧p∩∧v↑hW$≥<p∩Y≥⊂⊗∪J]P8 2int_id(p); pri@9hPN|≤Rv~∃X
;↔4+@∩π↑8 ,GH⊂⊗[p∧ul@∀AP≠πn)z↓xhP$'↔v!d4λL¬V}↓α_p∀→quT9≠4p∞k[pX
Rv4⊂λ'↔v!d4,s⊃l4Ph"↓αβbCKπw!β↔K⊗{@∩ε\XnpsriH0q7j]⊂:w.,.@ <βj↓/7|∧AF≡XλmT96 )nk[ ])
∀→@)∧c?]]H .l9λ⊂↔]z8:`4 rge@QS]Kf8~∃)Q∀A1)a8A←@/#C@/Dλ
.P9z`0pkse@⊂Aa↑AαCC↔∂⊃β'→∧¬FNv↑4ε∂"
]w>λ∨⊂⊗~w2L6→w3z4∨⊂1t0\αacteps
@1←]NX↓`∂=β>)βC3∞≠∃β'α@λ
≥]≠h≥H≠p~]8:z bpMMα+@∩rλNW-8π3@ the @=kiakβ!βCK|∧6/∨5AP@/≠y0~ε80sr←⊂0w2λ>7p∃@P1P∪'v+qβ←L¬Fbε
xD≥~→$⎇<\L]]λ⊂__pπe @¬]HAYαK;∃βw+7↔⊂∧ε}H≥~T≠~0↔→F@
about @Q↑AEJ↓←ki@∧εW"pβ"C! ≡#v≠Tε..@>8
∃C←khaE`↔→β(λ.90p→[0..l@%]J1Yα+;∨SEiβ >dλλ.qttL_wr2]H=pp∪@MK[EYα+⊃β∂F@⊗∞>LW.|πεE⊂⊂p∂`+β cCSα ∞F¬K[⊂∀[2L6 %ngthlAw]k5EKdAα{⊂∩ε=↔,8⎇→.9P4`. |oe@P1EkMβcp⊂@ ¬ ⊂[zz∧8_pπe,@!out_li`≥JhAgS@G#↔.βF_M≡≤h
@ {coo@IIS@;∂#↔Mβ|∧bε@Y>≥∧
~;Y$∞≠h⊂⊃→P7rj≤8¬t`<4⊂λ (αPλ
M→(⊂≡→αh kgα@cW4∧f/↔DλM}=~0↔→P2vx≥4ryP≥42P "u`
MKβ⊃β@/∧λ
t_(⊂∪Z{2w breakpkint,λ
+∞s⊃β7|εf/~≥gJπ,X,≥8π4`.dεAGQ¬`π∂&+@↔~∞MrπεTε⊗.⎇_Mm8π3@ o`Ai!JA]KβCQβ3L¬f*@β"P∩→v2z4[3P0@ bh C],ASLAαKQβπαλ\<X P_z⊂:4→P10∩eak p@=`∂'SL¬vrpβ"U
(_p∀_y0q`4ers @∃[aiSα+⊃β≠⊗{5βSF)βW4∧f/∩hn4¬ a↓]KnAαc';∃∧¬v $≠x
j≤8¬t,
λexc@∃a`⊃β&CπQβλ∧ε⊗@_;Zd
~;Y$
<h∪M}λ≥|M≡≥→3D=λ⊂~~2P:7\⊂7s⊂_P80sYUαEεB 8⊂8≤4πce@⊃keJA→Y`↔OACG≠4∧W%⊂λ8G:9z∞C_Z5∞TYP ;outp@UifAyα{WP@.V +l+@↔_.}⊗εB∧{t2\2P>!π7zz≤:9>/βE;0yλ5]_↔64w2F4∧ength;
begin if out_buf[b]= ∧@DAQQK\A⊃KGdQλRv~∃%H@QDβqA$⎇F{WPCd¬⊗v+f⊃∩π&Y`hP≤,V>Ndλf␈∩
;s
πMtε∩εMtπ?⊗≤LRGF=∞%N␈↑Cε↔∞k=5mj↔1PPO}-↔&)
IbB~u↔2εNl8E
βzz≠4p∞e)9
End;
ib bq←kh1AidAi!K\ASα1β/W!CG~↑⊃-FUh∧"α∩∞Mε.r
_L>J_@∀Nβ
i@_ADi←Uh1aiHAiQKαqβ≠} λ
oq∃@1 po @=kh!aQ` β∪zβ?WPF∪W
@=0,+7{p~]10∃@→0∂.uXh# ?↑Cπππ+yw/!∞
G%8Nc!9Y≥CE
@ WheN p∂JA¬eJAGα{Cgπv9α`%H[¬bπ=zW,y(∪,≡→<Z,≥λε⊂ 7e retai`≤Aαc';∃ε∪K↔π←_4+SFQβ?≤≠WIβL¬bπ&TεNw∞↑Bbε←6/πDλ
=λ⊂⊂[⊂2vx≥<P6$[2P4`3 no`(4⊃WkiAkhAo!K\Ai!JA9)∃10Ag=keGJ↓YSMJ↓oCfA9←]K[Air\A→←dAKβCπ7Cd∧Rbε∀λ
≥Y#"M|β⊂:4→P.*"V,⊂3$[2P:4_z⊂1`/npaiNpεA←]1rAC\αβ';∪-Aβ∂K⎇≠M /,Xf/⊗]l6*ε]nG/ εE 7ill Not be cop@%K@@9¬##∃βd3';π≤¬↓F@~;Y/D≤[u.M9Y(
≡h_p-Mα2r h¬`↔O ∧ε⊗.mxLQ ¬6 'et⊂⊃YαK;↔q∧K;CW'→β¬βv+]β3Ls∃!β∞s⊃β+/≠Qβπ5#↔Iβλ∧εfNlTε↔⊗\≥2π&⎇<Vrε≡0hV,X -d→;:.Nα2r→8y4w→P:42H7zz8≥z⊂7`& pranslated \PASCAL\ pext.λ
∀~)↓HAM%]SgPaYSMJtz~∀∪ KOS\↓SD@Q=kh1aQdt`R|QYS[%hp∃AJβS#↔p∧ε&G↑=↓F↔\h L↑J≠u.C≤≥≤E↔c"B,]Yβ"AQPλ∩-d≤_<NM8⎇3≡Kλ∃
(∨→M≥Z<p∀ε64w2←⊂897Xpr:`2e is callEd near the very
beginni@9JA←L↓aQCgα)βS←zqα←∃εK;'SN3'k*βS#∃ε{WSC/!β[π⊗Kπ3/→β'9ε βO3N;#S3Hh+CKN≠ ∨J∞|↔Jπ=tπ&F≡@λ∞M→(→M≡\⎇λ
M;Y(
|H≥~T≠⎇=∞∞=λ⊃M≥→(∃m≥≠λ_LQ"X↔¬Ow↔∩-n≥=∞|8Z→∞/IkC!! P∂
<=λ∩-m=CEh∂O#!-⎇=ε∞∞≤Wl'4≠⎇=β∞_9y+v.h≠n↑∧≠∩-l7l.d
⎇=ε.9Vd+[h\HG4≥|Z.L* w
≥\≥=∧∞y8ZDj.c!! Pλ
M→(∨∞}Z9→#;Yε
|F≤_,|?λ≤∞-xy9∞↑Y(~.∀_x;
L9λ≥m;H_$∞_9y$
8<Zd{y<d
;]≠d∞~→#!-⎇=≤∞↑H↔¬ouq0*h?H≥∞4ryP≥5P89→yry;→P:42H80srH9z9:Xz:y2H7s⊂:~2P.↔≡kba?βE34v→P4w⊂≥42P.=j"l∨⊂34f→P14P_pv64[3P:4~yP97]z4w2H0z⊂ \897x≤4pz2H:4vr\WεEεB 8⊂8≤7qrb≥y2P;\4z2L→w27Y80sY]FE1→stw⊂~s⊂7j]8:9∂_⊂:4→w⊂3&≥yt1≥s32y
5zz≤:9∀]CE9z0[37y2λ4s⊂7[tz8_srP:~2w⊂7[tz8_sros_v9r`
rv9rP∃r97Y4εats@;
begin wriTe(xcHr[foRm_feEd]); {write a page marc}
incr(out_page); oUt_line←1;
end;
end;
@ Wh; out_buf[out_ptr]O#;
@@⊂A←←hDPFRzu←←hPSGK9H~∃↓⊂A←←hHPFRzu←←hPSI←=hb4Tβ⊃β?⎇!M!
Kiw??"A
&↓d{?QHhRβ⊃β}{QQ!~Iuw?␈!!
&αc??Q_h*β⊃∧¬v␈#U∧2Kk]xnEλj0¬M{⎇
↓QP→⊂≠zz≡↑P∃q2cZw⊂7`/t1~∃↓HA←kPdz{-EKOS8A←←hH~∃↓H↓←khft{GE∃KSLA=←hf~)↓HA←Uhhz{WEKO%\A←←Ph~¬↓⊂A←khTz{W KOS\↓←←hj4∀∩∃↓)QJAqEeKC,1P∨W'aβK?,εFNvT ↔4_x;
L9λ~N↑⎇λ⊂L\Y|Y$∞~→(
}=≤⊂~]⊂12`&der @%`
βπ⊗{WP4U#=β?6+C≠3|εr`$∃≠h
\8y(∞M~<h∞
βzz4[2P0@ little faster, wa i@9SiSC1SuJAA←gSi%←\~∀@AP∨→¬##∃β|εW'π↑@ε↔∞lh .⊂:7P_,∧ ≥→pNvAi!SfAGαCπKπ≥#↔IβM≠9∨Q∧ε&.∞MK∩ε␈↑Nπ/"aQ hT∧π∀l↑λ~3M≡λπ↔↔⊂∨_
out_bubP⊗au>E 1⊂π0hPβ"P∧ Xπz2H:40zλ:42P↔*"`_\ construc@QS←\A↓8]w9q919wxNAI←∃`
β;|εBε@Y8p∩\βsabily i@9m←YMα(4+SF)β∂?w#C >Dλl↑=90↔_pP0.=n..≡|ε', pπ↑Ay eKCVa←kiX↓]KKILAi↑Aα≠#↔∂XβS :∞8V(hα]z↑~→4D
|H⊂↔≠z⊂0.=n./ P4qP≤92q`%ded @ rAC]=iQKd↓A0⊃o;EgruaP@HαP⊂_λ897`#e`ure breAi_out8εA`/4¬⊗v'4λ∩π≡≤ε(∞MβP19→pqP 4he o@Uiakh↓YSMKβp4+[∂⊃β-iαq33'v(c &]lw&C46NvL[αεNnMrπf}↑AF↔\kG`hαPλ,5⊂λ9π<xp∀ZL1w`$e; {characters drgmthe BubfeR}λ
¬E∃KSLA-?←khaaadv↓I?←kβ cW5[.ulhS←#'d∧Rε!4 α$→≠c!↓8Y0∪Zw⊂22Xy∀5@)8εAG∨α{WP@.V%↑9S0hPα:0∪λ1↑Q.λ⊂:42[∧A∧DZpε kt`AiQ∃\AYAaS]h↓Kee←HASKgMC@∨∃∧∧⊗v"∞λL↑_8 2H87FEαD@ @]`'S*βS#∃∧+;C'⊗)βGl.&}↑]`λ
M8π2`∂∧¬α else i`@P QHxE∧@ $⎇@¬ε#@HVHE⊂λ∧2< ¬BDR$8
#⊃p∪i %H 4(⊃⊃⊂JF|↑AF↔\k6@5αXnMH,∧")) phe@8~∀$HK↔∨Lqβ'≠≤ε"FZ↔0ε≥z$∧#Jπαsrd∞≠h⊂⊃≤2pu@_z⊂∩5I?αE∧BDrw2∞FA∧b↔q]FEαpp∞dl~∃MYβ+@≡Aα_],lY<@∀~TYP ;pπS@;≤∧Rπf5`∂Eλ≥~
≡h≠⊂∩X{2yP_P77`.-bul@0AEkMα3↔KxhS↔;⊃Xh 4(∧¬.(_p⊂[⊂1pz\p¬ the tbreac_outp_Aα3∨?⊗KS#5∧εFzπ}-↔&*
x
.D≥~→$∞z≠p⊗→P64`.e b`24⊃gKiQS]NAβc&␈?- cCS↔aβπl@λ∂Lwh@⊂λα| ≤~(~∃@eβC'n@ε/↔-xD
αryiXpπe @¬]HAaβ∪↔Cπα,Rπεtλ
n4z2W↔ ⊂≡t~∃EKα;'9β∧ε&NwA
fbBt⊂λ M8π2P~0r⊂ 4o be br`∨W∃\@@#|εW'π↑@λ∞¬Ik⊂↔]zλλp@¬H∂+αL↓QPS
≥Y(⊂∀_p∧ to be @ ` ><XHπβ
'( X\α93 ?↑CεfNβY.F¬,¬P 0p¬SMhaYP→!8¬∪@$βP ;
λ¬MO@⊂∧ε@;l(⊂~≠P7p∃@P1ai@⊂∧ε&@h≤⊂→~w:∀<_t9-w]zλλbud¬7Wmi%l4T¬f/9α≠⊂∀[2X @-?←khaa`∪IX∧ε≥z$∧#Hh,XLA ¬εE⊂⊂ λe@IJASF↓BAae=G@↔∪,ε&*πM↔"ε|ZGπ=_ P_P22`#imal np@7⊗+A9αLεBεO4λ
.p¬d @Q↑~¬O∃]KeCQJA[←α#W3∃∧sW7,ε'4~;@⊂_y3p∪@LAeKM∃`↔≠≤∧W5β
λ@<Glob..∞@8`6α∪'≥T∧↔π⊗≤ε6f¬KM↔$
βs⊂_↔≤]@≡p4st]9P:7H7zz8≥z8∞
@ The number↓iP≥β⊗)β∂?w3↔KS,!βe∧πF␈/C∞f∞gβλ⊂∀\β known to be @1KgfAβ##πdλ∂L9F→ML9␈↓Q\{h
≡λ_p⊂[53p∀↓QCmJ↓[←eJ↓iQC\αβ⊂⊗OlTε&.=→V∞bM⊗ ==_ WβE
@p procadu@IJA←KP1`≠πbB↓πYTε6OGLX -c_Z0~≤β)0⊗Aβ[?WS∧εW"ε∀λM⎇Xπ2`'atif@∀ASMi∃K@↔KβaPG⊗≤ λ
]_↔π
]P=t[22| into |dig|| ∃E∃H∂'d 5{β1Q'ε/Xλ.D→~9kung{λ6srX≥P+↔{⊂24]⊂_X≥H4s1`2(k);
qftil v=⊂;
bepeatdecr(k)3 out die[kM+ 0");
until k≥0;
End;
@ The |Out⊂name| SubroUtife is u@MKHAi<AWkiAkhAC8ASIK9iSMS∃`A←d↓S]IKβAβ↔≠'∪e Q( -l{≠tm≥Yh∩.D~;@⊂_90qb\β*~∀4⊃↓`AAaP∨∂,∧G/⊗T w/!α≠X-\*⊂λ.πXπ0vYL87`)nper$p
β@=x
.N≥=≤d(≠X-\?C"Nl<H⊂∃Nα0 ≤]5Cp #↔KS↔MX∧π↑NβY→/∧~;]
t≤ε1<]2L6r[|∧p≤~)EKOS8AWkh @m KX4+≠|ε"ε]|/↔&)∞:F∂↔K<7/⊃
l⊗n
β(∃
t_X`4e_stapp[c@U`λc;∞k∃-FhiEβ∪xh ',;'9βL∧bε↔≡LQF@9;6mn↑Qλα then oet("T"$p4(L{WQ/↔&)
\Vm↑9Q∪Hh!_Vv#1Q&␈/EλODJ.c!,;Y≥CEβ ⊃⊂)≠zz4g→yP:4_z⊂1`/py @9Q18AαkπS↔⊗Kπ1aQ$'<Z0↔→β phaq`
Ai]↑P⊃β>)βGO*βS#∃∧ε7.↔-x
.M8π2`3 |co@Ar1YSαk ?βλ∂L{xλ,F*"d>⊂0w2βE>1`/py_c@=[[K]QxAS\αβC &≤8 $
βs⊂ 4he analogous p@I←GKIU`↔M∧∧6∞fLX ↓Q←_ `+ip⊂⊃YαK7|π∧∂≤zz.β∃⊃6∂Eλ_;LD≤ε0∪@-S` #≤¬vnn]nGbπM↔"π|XLT≥<p∩Y⊂4w phac@∀AW]J8~∀4U##∃βd∧6␈πα 6~vq7nλ90∂`+β#';∃bβ⊂⊗@|H⊂∩↑0p
pLe(λAi¬S@↔M¬bRε@ Dεn∂LXM≤8ε⊂ 4hat @%`
β;|εBπε≤∧]↓QXπs⊂_w<P -o` kYα)βπl@λ
]⎇Y0→H4z⊂ &p¬P∨5∧εFF*∂H
-n≥=∨∧X∧v % po @QQJAy=kiakβ#qβ≠L¬F*@@εE'≠P0 ≤.{@@}≤AgSO9`
βOF{W3⊃∧¬v≡∨↑ λ
≥H≤u,=λ≠8.L<Z0⊂[⊂2|1Yx:⊂ )n `@89w↓↓↓↓x@≥β∧∧⊗O↔4εc!9zq`( pai@I`
βπα,Rπ⊗↑λ≤y9⊂_<P9`)ngle@Q←]f\α4(Q(παπ∞-v≡9→0→→P1w`0y_li@5EVvAβ[∂?CJαrR⊗βBε≡|LRπ∞β]~-D≥~→$
Y>≥∧
8πr:[2P12Yβi`≥gx~∃@3∞∪↔1β-C'QlhS[πI∧∧3@,<xp∀ZL1w`$e; {character @→←YY←]S]NApYw↓↓xAgSO9|~+⊗+↔'d F}␈∧ ⊗ $≠≠pgm~;:.D≥~→-a B",,9z;DZ;Z.≥∧≠∩-l.h→l↑ε≠∩-l.c"A⊃:9H.9YQ.-X.@=fh∂eZaMKKH↓iQK\4∀∩∩∪ KOS\↓SLAS9akh⊃!Cf!Kαs∪↔⊃π##↔9π∪↔SW⊗ql4(HH'←KO#∀c↔v c?_Gβπ∨∃Xβ3/∞{ l4(HH'↔≠#X4(∧N+;⊂4PK↔3O(K↔∨NqβW63↔JofK7'Q[
v⎇
∧↓ l4PH&↓r≤{Ceβ/↓βS=ε≠?;S⊗{1β∂|#∃1βg∪↔SW⊗sqβ'2β≠';Lε6F.HπcXh!⊃⊗.vG1PV/
~CV.lC0hPQ(α∧βH9wπJ∞Zαπ&t6}wN-vbrehβshQ.vFNLTε↔.llW¬↑M|5iZ(λααεMqPPN,\vNr
x
.E_]0∪→2y-v≠qnT]H4w1`2(hoc);
end;
if lOc≤limit then
begin loc←loc+29 c←Buffer[loc-1];
if (c=" ")∨ ⊃FuiCD15CeFR|QFzD(@RAi!K\Ae∃ice\l~∀β←UhPE↓DRf~(∪SLA6E↓λAiQK8AKedaaeS]PPNBA⊃←kEY∀A↓AIKckSIKHA←UigSI∀A←LA5←IkY∃fNRv4∃] =kEYJ↓w9CixAeKcUSeKH8\]|4∀∪K]⊂~∀~∃A)QJ↓yG←ad1)1pAe←kQS]JAAe←GKMgKfAQQJA9Q18A
←IJA¬hAiQ∀AEKO%]]S]≤A←LA∧A[←IUYJv~)MWdA∃qC[a1JXAi!JAo←IIfAs=jACe∀A]←n↓eKCI%]NAo∃eJAG=aSKH↓S\Ai!SfAo¬r\A∪PAeKiUe]f~)iQJA9KqhA
←]ie=XAG←⊃JA←d↓A1lN↓←dAK9H[←L5aCOJ↓MWk]⊂AS\AQQJASαsCWQph(4*¬↓β≠Wv≠S'?rβ∂?CIBR⊗aV+'∨#!C'S≠Yβo∂␈βeβC-∪∃αr$*bqβnS↔KN3x4Tcπ↔bβ∪?;+X4+[∂⊃β
k.K↔#PF∪'SMZβo∂?w#K/1∧≠?∪∃ε3?W;'p4+.;'9βd{?Aβ⊗+∨'→εK⊂∩εM|3vf≥]↔"πMVph!⊃⊗⊗.⎇≥bε6≥m↔≡A
I⊗v+4v/!
I⊗v+1Q HN≤dε↔.llW¬[P∂,m|[&l99λ∞M→;C!!""8L\z;H
Mxwl'4_wp__srL2[2≥P3[z7P2≠w2]FB∧DDr[2≥FEαDrw2∞FE∧q≥s32i⊗βlimit+1]←"@@";
∪qπ←ar↓k`Ai<AA9l≤A←dA
←]ie=XAG←α#∃1βf;?S=ε#?;↔bβ'→β4¬⊗vO=V$βe1PPN]lCXh,Mvv+,9wπIλHUE}4εc!,;YεaQ@εE λ+rP"≠w∪z copy spac@∃`
β?∩βSπ ∧¬V∂⊗α|h
≥]≠h∞M→(_L\z;[M≥Yh∪l@⊂0P ,ine.↓)QSF↓[CGKβ→βS#(h+@&↑8
∧Xπy empty linepεAS\↓yM@'vK@≡Aα≠⊂∀[2}⊂ 7or`⊗\4∀∩*βb∂?CJβWAβ&yβαs2919:βqt4⊗+C↔π ∧ε≥}.X L@2y-v≠qn]@~w1y∀≠4πc);
`∪L↓FzExλAiQKαqβ∨?&yβ∪?v)l4L1βM∀α↓ β&C↔8∀PK↔∨Lqβ?W C
%LhP''→αC?WPGβSIuλH⊃!β≠i↓↓ Iy#
w&λc7∂∪%%%¬##↔→ε#↔∂IF{WPcπ#@∩Kαc"A≤8π2
CE:w:~v⊂1↑H ⊃
CE0 f lh∂F91S[Sh↓iQK\4∀∪EK≥S\AG⎇G←]iI←X1Gα{∪∃#↔+≠≠↔∃[3 >9P
'P4w1\∀67aJ]FE∧Yβoto done;
∪K9H∩∧~)A)Q∀AyG←ββdc∂|¬Vn8π:>λ8yr`3 afd↓`↔S,ε&w~⊂ε↔⊗≤8 %\X;⊂-ly(⊂≠_v:rVλ30∂l@1←oS]≤AaQJ4⊂∂?w3↔;SL¬vw~
x D∂≤zz.β_{p⊗[p¬`≥ipACE←β3∃ 2 _N≡→89∧
βs⊂ #opp∪Sαs⊂~πMR¬@∃⊃6D≠8=↑X∧pvβE0 nto the h∂kiAkhAEUIMKdαaβC#Lε2ππ-xλl\≥<Y${xλ )es i@PASMi<AaQJ↓iP∨/,¬bε@9;;n<WεE∃42P !bbreViati@=\A`3∂β@cS|¬2Gλ∧}⊂~yP:`3e` to app@∃]HAi=S@↔d∧G"λ≥≠d∞~→(><\Y-nβ"P~≠urw list0AC@; ∧εO"≥G=h≠8-p¬s Sure @QQChAαKQβ'~βC ?>8
,-α2P 4o a`!ββ↔;⊃∧∧↔"εLXλ.≡β"P↔[2P3 5p¬aQKβ⊃βC?↑+9β←LεFF@⎇=⊂≠{2y3≠4πw.
λ∧⊂∀(λ ∧<≤ε∞MβuT#)=0≠E∃H∂'dλ
,@⊂:7`+_pt`$αYI`6\∨↓G≠z|d∞~→0↔λ4πve@IH &|¬`∀ z7ur[⊂π ∩v4⊂λ'S|¬1F@9;6nMβuL8≥9(
@>p
β'v≠@∩GMx
c∞≥_@∀Nβ
α @∃]H~∀4⊂
βA∧∧g.v>M⊗}r8n∂&_p↔[vrw:
⊂q0[≥2t`'hpλ #⊗KSM↔( -≤z≥ε-=_nd∂x{p_~p¬s \T@ "bβ∂?∪*β'8Q!⊗≡}]\Vw≤␈C!
α0q2[⊂27`.e;
@YCdAFiCgGSαHc∂?&)`~παxp~\αrent characte@HAEKSαs⊂~ε=x
≤9≠C!12st[⊂67`/p beGin i@_AQ←FyYS@7LεBπεXAQ@∧D`"ecindπ@↔Pβ
FNvTεc!∧@ i@_AEkMα3↔J@(tok_ptr); @<CLear @qECI@bq9:↓pπ0hPα"0∩[2≥FEαrp∞d
elc@∀ASL@!FzE8λRλ@#↔+≠≠↔∃[3 >8π&d ⊃∧H:42`.
∪E∃KS@9∧C@c&{%#,∧f&/+=F}≥U↔2εNl8E
≠xj'⊃"B1-lβ"Q-Ny(∩,@⊂1V@"{" then i@9GdQE¬XR4T∧Vg≡Tλ
,@⊂1V@"|" then~∀%EKOS8AIKGβ⊃#πbIl4(LK⊂∩ε,≥Ckα∞Mε.r⎇w&@h→≠ml,c"A≤8π2εB∧A ⊂∃βhen↓iQJAα≠?7↔,¬g"ε≡2πε↑-VNv≡LV"ε≤.'/πMK∩ε'\Tπ&@h_;D<X[n¬λ≥y$
⎇=≤∞↑β"P∩[5zstλ90st≥⊂110Xp¬s @Q↑AWKα+Aαr$*baβFCC@∃aP@HαP∂λ≥→8<D∂_X;∂EKKPπgαBE !pp⊂tohεPD@λRvAwQQSfA%`
β∪|¬f*ε≥`λ<<y(∞M→(∀∞,=Z0↔]yP1`(aracTer waq `L.\X'n
λrepEat app_tok("}" 8εAIK
` #∞a%l4TεVw&≥Dε⊗∞GVβXh,⎇w&@h→≠ml.c"@↓Hλ¬⊂(_y9t`.e*~∃QQJA[=chAS9ieCGαS∃β∧C@"
x Dα∪=kQ`k"`> is Its mechaniqm f@=` β∂|¬g6/,M⊗v8Q+E∧
88∀bnβ~2lT_{qT~;]
t↔∃⊃+λ_p↔Y2V⊂ [2⊂;rH4p ght ac wadl phunge into thiq
αaspect↓←@→β&C∃βC⊗{↔Kπh∧εv←u`λλ∀__⊂⊃≠z:7fH8¬p'≤ACaaβ∪?π∂@β'Mβ-≠↔"∞Mrπε≤.6*πMPhUβ∀⊂*8p3-M8¬rP≠pz2`2ia`_X↓`∂'l8 $α∪=kQ`k"`> hkgβ!β∪↔∞aβO'&Aβ≠K∞;7.β]_.<@
@
←]giIkGiSα{;Mβ>C?O∃∧¬w6/,≥Fbελ≡]λ⊂↔Yα sp@∃KGPNα9β'M∧s?Qβ↑s?←9ph ⊂@ ¬ zλ:42P≠4πwe@MhAYKβ3↔1Dλ
(~0↔≤8¬t @%`
βK,επ⊗/<XNL9λ⊂.P0P 3eque@9GBA←α1β↔≠&KS'↔~βS#π h#@>T
6F∞MDε≡∞MDπ]f≤@π<|X<∞␈⊗⊂ 7here each↓`∂∂K∂↓β >dλ
-lY|[,≡~;sD{{\m≡⎇≤h
|A"P~≥wP8 !pp fX↓SifAβZs'Q∧∧6∂&\⎇w/?H⊂-lλ~0~≤β p↔dKQβS⊗;O3∂#'?;p¬b¬&Tε≡∂LXv␈↔∀λ
.FA2i\p¬`≥i%CYYr↓BAgsαsSπ∂&K
β∂d∧↔>hε⊂ !nd the tbanslation @%`
β¬∧εF}↑]`λ
M<⎇⊂≥40p∀
λ¬eKaβ∪↔O↔w#@~¬JHUE@λ_p↔Y2W⊂)≥v2yP≠pε s@e]`∪πβλ≥Yλ⊂→Yvpw:~qyP 4ell UpεAQ←β9βC=∧∧6}n-_LQ ¬0r~αace@9hAgGβ∪πCM∧¬⊗wεtλ≡Yy0→λ5w2`3, and if @]JAC@⊗)β#W≤¬7Jε≥`λ]]~4LT↔∀⊂*8p3↔∧∞α2|:βE:40]⊂9z0\8∧s @=khACLAQk]⊃eKIf↓←@→β≤¬V∞fD∞6∨⊗≡λd∞z;∪∧
Yz3D∞≠yy.M→<@⊂~w:7P≠w2FE→βigantic scrap whosE translation iS the desi@IKHA9Q18A
←AJ\↓∪DAo∀ACeJ4∃c]Yβ+∂/ebβ←¬β>K3 ",RεF\h
∧∞z=~∧∞y=Q.9λ∀l>X<∀d∞~_=∧≠{InD_{p⊗X4s2]H:42d\∧A:9_w9v ]4ww9H;tv&λ9tvx≠<P12H7zz8≥z∩⊂'[2P1<H7w2WβE
The c@=[ES]¬iS←\↓acYKLACeJ↓KSmK8ACfA
←]iKah[gKαsO'SO3∃βC⊗{∪W∂&K?;Mπ##πQεK∀4T∧↔πεM_ ,D→\[mT≠→1ND≥≠h∞-9z≥¬d∀⎇4∞
|y(∞M_=⊂≥pP0y→P1zi≤2w:6≡P;wi~βi`≥Nαβ?9β&C∀4≤∧W∂.]l6*ε|dπ∞∨,≡π
αL0∪
bN0∪∃fLMw'≡T∞0∞rE`¬.(≥≤O∀→Z0→≤z⊂:7H34w2λ:42P≠7w3r\zεE8≤7r:`#tion that↓CaaY%KfAi<AC\A%]SiS¬XAgk gieS9N@If∧c8Yf∧e9YI=igZHlAEkh↓SLA]<~∃gk
PAae=IkGi%←]fA∃qSgh0AoJA→S]HAQ↑AMS9HAiQ∀AY←]≥KghAAe←Ik
iS←\↓CaaY%GCEY∀Ai↑~)iQJA9KqhAMkEgiIS]N@⊃fαe81fαg91I←ig4HvAC9HASL↓iQCh↓MCSYLXAoJ↓ierAQ↑A[CQGP~∀⊃fαg81fαi91I←ig4HXAKQF\~∀4∃αAaI←IkGQS←\A¬aaYS∃bASL↓iQJA
CiKO=erAG=IKfA!CmJA∧AOSm∃\AaCQiKe\8A
←d↓KqC[AYJX~)←]JA=HAiQ∀Aae←⊃kGiS=]fASL~∀HIq←aK]q8wy[¬iQy8mygK[%y8w9Iβ8wy=aK]ypwy[CQQxHH4∃CMH↓ShA[∃C]fAQQChAQQeKJ↓G←]g∃GkiSYJAgGICafA]Q←gJ↓eKga∃GiSm∀AGCi∃O←eS∃bACe∀~∃y←AK]xX↓y[Ci!xXAC9HAyg∃[SxA¬eJAG=]mKeQKHAi<Aio↑↓gGeCAfAoQ=gBAG¬iKO←ISKf~)CeJAq←aK]pAC]H↓y[Ci!x\A)!SfAaI←IkGQS←\A¬Yg↑A!CfAC8ACgg=GSCi∃HAek1JAiQ¬h~¬i∃YQfA!←nAi<AG←[ S]JAQQJAiIC]gY¬iS←\↓aCeILt~∀H⊃9KcC1SO]w<αd,{<αc9GH~∃~αH,{~αE8Y'818]w9pY⎇(YqQE←@G[s?C'cza⊃-c∂Ky" 4*SFKMβ7,;Mβ&CπQβ&C∃βs⎇β↔;qπ≠∂Kπαβ#πM∧s?Qβ≤Cπ;∨,!1β←FK3∃β&C∃β;,εrπf\≡FGb∞<7,<β"M<h⊂$∞≤X;N=_=~-⎇H ∪ ⊗Iλ⊂⊃[vx7`3ed o@_AiQJ↓ieC]MYCiS=\@I~∧bHA←α1βS#*β?K≤⎇⊗v∞ββ"OM8=~∂D≤xtL≡λ→P↔[4∧owed by the Tp¬C@;≤cπS'|q↓%4APV@yH⊂~~2P>9Yvp | pπGeC@AMOY1←oKHαβeβ¬a0↔]KEGbh→P↔[4∧owed ∃EdAAi←AixNAα3?33|εv.λ_↑$↔@~ITε (In the X )a8AMSαc∃!β&C'Mβ>K3 "∞>ε.≡≤k∩ε∞dλ⊗&&≡M⊗}v≥APG~~0↔λ9x0qYP0s*→y⊂:4→P9r`-icol@=\XAMα{3 &}|V"ε/∀ε∞r
x∞M9{X-D≠~3LT_X 2XuP;t]4εE 0enal@Qr@j@8RA)@⊗;O3∂#'?9¬∪W3↔~βWO∃¬≠WO≤ε&OπN4π&@h→~.z4w3]tyt betgeen~∃β#@⊗∞β\s≡~;sNP7s⊂≤qy0x≤β whoq`
AGαS↔∨|ε&N<h∩≡Y(⊂~~2P9`!m`
ASαs'S'∞aβ &↑NF/∪αc"NM→<p∩H9zq9Xy0 `!β#@~ε≤,Rε∂>8
,@w2r d¬eOZ↓YKMhαβS :∞-⊗ =≥C!↓α@
$\,¬w/¬(
/d@ε∞g=tεF∂4λ
(≤⊂→≠p∧uc@QS←\Aβ∪W3∀hQ⊃'β_p∩[t}.≥W) n≥←8∧erminadop¬xHH4⊂Q[Kα;'lpλ∞M_9⊂_P9r`-icol@=\AGC8A`∪↔⊗k';π&)β¬αβJ∧
≤8→Ebπ>L↔&.β90↔≥∀W⊂)Zw1rP≤93r:Xz4wg≤FA0y→P0p 0liedd¬eOZ↓YKMh↓iP≥β⊗K↔#QbβS#'α4π.αpe wi`→X↓EJAC
iSmCQK@A←αs3eβL∧bπ~→(∂Ny;:/A ¬4`3 j`∨@ ∧ππ⊗\8 ,L9λ⊂⊃≡P9q`2aps @QQChAαkπS∂@∧ε␈&XD∞≤[p∩≥qz4`/ns; @%\AaCIiSGkαcπI1∧∧∩πg<X-∨αεE 4hat @%`
βC⊗+∂.LX ∧↑(⊂⊂∨4πpe@9xA`3nS#@Dpλ∞⎇8ε6⊂~0{2P→4ypx≤2pp∩ed be@
CkgJ↓←@→β&C∀4,λM|α:q`4ion @¬EP∨[*aβπl@∂>8z≡p¬`≠Sα≠?3?w→β∪=∧¬f␈"≤7"ε≤∧h∞z0p∀em`@; ∧π&/-]⊗v∂MxNTε~∃QQSfAαK;∂'&+;@&≥H∂∀~8 P~4πw \,¬w/¬(
/dλ
.P0q6→P:7P≥92pzλ9rvtXwv7`.pεAS\αβS@>qQ&&O>M⊗v∨MH∞$~9P∪→y2w:λ8πa`3β→1βSF)β≠≤∧\nD≠yH∞⎇~8p∀λ4yP )np K]⊃K@⊃β4¬w$≤y0⊗Zqwv /ns i@8~∃iQ∀AaC@⊗7/LXD
α4p∪@PAP∨→∧∧∩ππ-xλl\α:y2H22q`,ara`)%←\\~(~∃)Q∀A`∪K∞s@≡f≤¬~-⎇H≤]-L(_p↔\αres@A←]ISαs⊂~πMtα'g<X-∨α.≥n∀ h;|terminato@Ix@⊃βLε0hRDJCm~DAP@,]=⊂≥p¬ s@!CYXAαs?Qβn+;@&≥xD∞α90w≤βla`)%←\AeUYKfAαK9βSF)β∂?nk?9β≤∧↔<(≥~≡λ≥~Q ¬0∀ransl@¬iS@?pπ?2∞Mε*εlX
d∞x|X.∧≠{@≡M→(⊂→~pπht5QC@; π@≡NLTεO~∞8
-↑≠_P≥42FE_ww1`!te`≥CQS←\Aα{⊂∩πMRε&≤∧p⊂\82py~w3P 3cra`!LAP∨9∧εFF*
H ,@:⊂
hand s@%IJ\~(~¬A!KeJAαK@~ε∀λ
≡⎇λ⊂↔Yα the ca`)∃H∂?Kβ∀ε≡}LXd∞α40zλ9qy0\9P1`!n have(4Ph ∀εDλm≥<λ∞XH=z42H8∧ranpπYC@&K?9β≤∧⊗rε,Tπ/≡\@∞⊗@⎇~⊂~w⊂47\αizo@9iC@1∧¬V}→#"A≤8π2:w⊂6p]4⊂6wY2P7`& X )axλ ((λ ∧
αpp∀h=2 {the transl@¬iS@?pπ@≡F|¬0⊗→⊂12P≥yrr;w0`2↓S\Ae"⊗bq∧¬V∂&∧λ-|α2␈εBα@d @%]`∪K{iMβ@<⊂∂>_8
2[p¬nt↓SfAKβCC↔∂&+⊃βSzβ⊂⊗}MHnt≥~~.V⊂0s≥2y⊂ ! space and
∪C8AP∨C&K?;πbβK↔∞[p⊂@"P⊂∩λ4πpe@8z`⊃β↑#↔;|¬→.P0w:w1w`-ph Ki∀AaC@⊗+;@&Xm∨Y9≡≡8;]
≡≤∧P 4o be usedin~∀%[CiPβ[←IKβp4*β π↔∨L¬fvNβY`≡MP8denh∂iKβ→βπdλ
-l{{<
L=→(={<⊂↔]w2⊂ 3tate@5K]hAβ#=β*βWO↔ π'8Q!⊗F@|Z0≥≠w:0vλ4¬`∨I∃xλ4(λ ∧{≠p→Y↑[⊂ ;end`&↓BAaCIK]iQ∃`∂'M∧¬w$_{p⊗\4πund statement|∧⊂∀(λ ∧8ε8 (a=7 @mIK@;|εF/~∞Mε*ε,X m≥Xπ4`.dεA←L↓BAGYαWO↔ph ∀εDλm\αsp@=8 p↔I∃]P∨S,ε2π~→(]Y~0↔→β of a cl@¬kgJAα;⊃β∧¬w>z8[T_{p⊗[p¬`≥hαβ⊂⊗@{≠⊂↔]tp∞g}
@d↓`∂.β:/'∀≤¬r2[4πte@LABAgα+7'∂|¬F}r≥f"π
xntq6 % comment @→←YY←β;';≥∧¬↔'pβ"PD≥→0→≠tp∞ator0~@λεαπ←=x,↑~~0↔→β that endpεABAβ≠SπS,¬V.wDλn⊂22`#laration}
λ¬↓HAβ≠S /GP&∀≤¬r2[4πte@LABAgβ#πS↔n+;@"
xD→8p⊗_y0r4[w⊂4`.cluding i@Q`
βS,ε&nNβX=
}←C"Hλ_p↔[2≡P@2 {prec`IKLAC@9¬a≠o'4πbε≡L≡W<αP:4_z⊂6tYβht @!CmJA∧AP↔π&≠#'lpλDβ=r`,pπ@↔{ph ∀εDλλmL=<p∩OXYP ;prec@∃IKfA∧AgiCQK[K]PACMi∃` β←FK∂!βL¬f&.nL↔&N⎇`λ]Y_ `>
@d↓G←Y←αquEQ∧π6&.β[p~→yP0@ coloN|λ
*∧∧Bε/∞πS(≡|nL8π29H30∂r↓iQJA∀ASLAα β≠Mx↔&NβY`⊂≤4πint consta`≥ix~∃↓HαβCK∨≠iE@2∂<F.vβ⎇→.∀_(⊂_≤4πce@⊃keJA=` βC⊗{⊂∨⊗≥Pλ
}H→P~[1z4`/n he@¬IS@;?p4*β ∧ε≡∂<SεF.≤@∂&⊗βP=r→w0∂tepεABAα≠πO∃∧ε7&∂LX,]]λ⊂↔\α re@
←eHAαC↔π∪L¬f ?β
@d re@
←eH1!KCHzβ aβ@<LVv@⎇→0→H0P92Xwy2 heading witho`+β!β'lLVw_8
4[ print('p@I←FNRl~∃GCMJ1QK¬HtAaIS]hP≥GCgKαC↔π⊃:Il4+⊗+∂?K!C#↔π#QβCKNsQ!∨⊗+∂?K&C↔π⊃:Il4+4Hc#.⊃iβπ∪';Q@;[πKF+π↓≥KX4+↔g≠'∃iπβK';"A∨↔3≡K∃≥%Xh+∂π≡+eiβπ∪';Q@;∂πO-I≥%lhS7?⊂G≠∂KπβQβCKNsQ!∨n{∪W3*9%l4V{S#↔⊗≠πO↔~βCK'w!!≡VtZ:>↑r9$4+.s∪∂π≡+Ml4V+;⊃lhS∨W. 4(4T↓αS#*βS?/.qβ3'∨#Mβ≠␈⊃βSK∞sO3π&+⊃αr$*bqβ␈+SCW"β∂?;&'9β≡{7∃β∨β↔∂'∞aβ∂?w#K/0hSOg7⊗{3Mβ∂→β←↔faβπMε{K∪'vKeβ≡CπKπ∨#↔KMrαS#↔≡)β∂?w#K?1π≠g7}cEβπ⊗)β';&+KCK/#↔⊂4V∪eαqwZ↑⊗ε4+yβ.3?K∃π##↔eεK∃β?∪'SS.qβS=π##∃β␈+SCW"β≠'3*p4(4UcgO/Oαs#πv9βs⊗+π/qε#↔;?&+Mβπrβ?CSN{;π1εc';∃ε∪K↔πZβ?Iβ∞qβ↔9π≠Cπ∂+X4(4UcgO/Oαs#πv9βs≠␈∪∂↔qε#↔;?&+Mβ¬εc';∃ε∪K↔π[X4(4UcgO/Oαs#πv9βsN8c≠?⊗≠↔qβ&+;?S/→β¬βfK;∃β↔∪↔π-π;'S!ε∪∪'&K?;πbβ[↔K&K∂π1π≠Cπ∂+X4(4UcgO/Oαs#πv9βs?π#qβ∪.s?S↔~βπ9β␈βS'?v1β3Ns∃β⊗+π-↓G;'S!π##∃β≡{;S'w+πS'}qβ3'v(4('Ns∪↔;&+⊃βS>yβ↔7~β←'SBβK↔Oε+∂Qβ&yβS#*β;?Kn1βO&KS'v9βC?≡KS'?rI557&C'L4PK∂?∪*β'Mβ6{33?>+⊃βJβπ9βNsS↔∨/⊃↓∪9"aβπ;"βS#∃ε∪K↔πZβ←'3bβ?∂∂/⊃β←'&@4('ε+;π3'I↓⊃Eεq⊃l4Ph*sg≡['BsF;≥βf∪π∂//βqβ∪.s?S↔~β¬β∞≠/OC∞≠∃β?2β?;∃ε+5l4Ph*sg≡['BsF;≥βf≠π;∂.cqβ?⊗c'S↔⊗S↔Mε;eβf∪K↔π←aβ?Iπc≠?K≡+qβ?∩βs'9C≠?K≡+p4+&{/↔;~βS#π β'77.#'πS.ceβC⊗+∂↔∪*β?Iβ6{33?:β'Qβ∞s⊃βπg≠=β∂∞s∂↔3~βπ;dhSsπ≡[WCqπ#?/↔w→βS#∂!β≠?fc?]βO!l4(hRsgO↑KBs#∞s≥βSNs∪↔;'aβ∂π/≠↔Mβ7+SWK*β3';-→βS=ε∪∃β'v#↔;S.!β?;*β7?K*β↔5lhP4*sO≠/'BdCπ;≥πc?WS&+;Sqε≠πWO-→β≠W'+K∃βdK;↔Mπ#=β*β';∪.sS↔⊃ε{;∃βd+GMβ.i84!Q%gO==↔¬fm⎇⊗v&]nB∧∞MDε}2∞Mε/≡T∞F}↑]n2ε∂,Tπ⊗.]zf."n&}j∞Mε*¬JHUEb
}W'π↑Dπ&F≤APV≡⎇\W~εn-vj¬Jλ∃≤≤→KBπ&←∞Bε⊗↑Nv..dGε∃D
6N>n72πf.,V∞←Dλ⊗v"∂Lf␈⊗<[Bε∞l@πff≥lQF↔,\⊗←`Q,&.≡⎇\Rπ≡≥lvf*∞>ε∞≡↑4εNr∞MεO~
]v&*d
FF*∞N&∞w=Hλ.M;{H
|H≠u
<H↔
λ4pp)Kλ≥→/∞≤c"N,<⎇;∞Nh~;D∃⊃6D_{sNN[{λ∞<<=1-ly<hE↑w↔ε∨Kλ↔¬ow↔Oeλ↔O;↔␈ED↔↑kK
∨C∧↑wF?Kβ!+↑wF←KλE↑w↔ε␈H_{n.Y<|
⎇Y~;Lt≤Y<n8⎇~.l;≡(∞Mh∨~-l→;]∂Eλ∨≠n↑→→;NOλ↔
}≥∨↓Q←_X,=⎇<∨¬D∨_\L\:␈∧∂→[tL<?λ≥Yλ∨-9f→M}Xy?¬d∩≠ul↑Y<K∧(≤q.≡9;XlT≠yH={\y,>=~=LQ"←⊂N,8:␈¬D∨→[ny?∧9Yβm}H∨_M≤f→Sny?λ∞Mzy;N4~<hm<\p~λ92x&_qrr_<P0@≤βifgle
tok`\@!iQJA5CqS[UZA←L↓iQJA≥SmK\↓←]Kf$\∩∀~))QJAQ←WK]LAy[CQP1eK1xXAy5CiP1 S]xX↓ySCi 1←ax↓oSIX↓EJAiIC]gYαS↔⊃∧K;S<hRq;nec7πSG∪↔2s←q1αqwZrs7∂##'ucoy1∧∧⊗v"Eg]eM\↔&F}G←rDλL↑|→8nM=Y0⊗≡W
Other↓G←]iI←XAgα+GW↔v≠↔MβL¬bπ&T¬e$YBε←↑Nπ/"∞⎇⊗f@λ_Y$↔↑kKα...≡⎇∩. ,dotsM$\ ≥9βq≤4+≤εWπ⊗|¬0↔→4s3@ i` K]QSM@'-∪E!β¬a3nrea~`'?dEf@→≠u∞≥)↔KOIh⊂→]y97j[24w3H92yb\αp
KHαβ←?K'→0$¬a0↔]KEeg←βI↔
L≠⎇≤mT↔W∂DβP9j\93r`.difg↓`∂SKLs↔MDλλE↑w↔λ;≡␈IMα27`4qm$\.\}$\,$|fo@IGKxN4⊃gkeI←kMI%]NAGα{77↔w#E "≥f"ε Eg]eKFrβ-`Ef@→≠u∞vR.↔≡n.,? P9z`2p¬P∨Wv#';≥∧k?βWd∧Rε@X;9.T∧
@]QKeJIP→⊃∧¬↔4≥~→$
8πr:[2P7:[q2yπβE
@d math_bi@8{Ndβ↓L4
∧∧Bε@8=~β∞Y;∂(∧βY_~βE 2 math_op=@'205
@d bidε1GC9G@↔1l↓≥IA2βo3'↑)βs∂∞s∂π∪βEBε∞β_ `/ kve@I`'∪,ε2π∨≤6/∨βC"Hλ_p-ly;∂(∧βY_≠H=wp⊗ep¬eCI∃`
β@L,⊗≡←↑λ∂¬D≥_\L\8␈∧∂→[p→_r}⊗⊂∨10 g_dh∂eGα+sxQ(ε"ε≥lF.wG\6∞v<X¬6(≡{ml(≠;n(≥_,$λ∧&↔≡n._␈
|ε~∃↓HA←@/#∪↔n@∂,<8π1`%l+2 @m←]JAαc↔OM∧εF∞∩¬B`/w↔O@∀␈εE⊂2⊂7`0t8GC9G@↔E0d∂{xλ 4ional bre@¬P
β'p∧εnNE↑7&∂LX,]]λ
E↑p∞.|ε)`<4⊂
β⊃∧∧&∞≡>Zβn≡≥l6.bαi⊂≡yz4`#hεA←@,εBε↑lTπ.vα8
th∞Ai!JAYKα3Q↓λπO;↔
∨E∨β
@d bbeak=c@¬]GKX,jA`/|επ&N⎇l⊗bε,∧Y,≥h_Y.Nβrr`. statementpε@@"βEg]eFX∂E∨β
@d fo@IGB`7≤∧⊗v≡]E3 $≤¬s /p¬GKHαβK↔∞Yβ↔';↔πdλnL=→0⊗Yw:1P
,∧ ≥wq8m|Sβp4*β ∧ε⊗Nqf␈⊗<WV≡∞l8 -Emh⊂≥Yαh∂eGα+⊃β⊗+π-β>KS!β∞#∪'SL¬vv∞βλ⊂→\0qrP
,∧ ≥wq8o`9Mp4*β ∧ε.vC∞G,8π9v_z4wg∂q0 g_dh∂eG∀VbAwMaKGSα1βO,¬g&NlX∧∞≠zy-d_9⊂→w2⊂'Yα li@Mi|4Ph*↓α&C∃βK∂9β'≠¬+Qβ'~β∂?;4∧W.α2r into pπGeCA`
βπ≤∧6␈⊗M→f 4≥≠h∞M→(⊃M⎇≠≠p≠Zw3P*_q22VβE;t4Xt⊂3t]2yP!Xz2sw\αy c@=IKfAα3?33|εv.α/∩πεTπ'⊗≥n6f∂M_mniH∀m⎇9=~-\αyP H9tw3[2@
@%iK@5∧{⊂∩ε≥nπ/"∞λM|≥8p∩\β mo@IJAiQ¬\A←]∀AgGe¬`\4Uc∪↔~bSnq;XQ+{yαBS#∃¬≠g7|¬Bε¬E$rπ∨L≥f'~mwαε Eg]eKDeg←8π∀MT~9→-n~9P∀Yy?&/∨α#$ @$X∃9`h+@&TεNε]nFN6α94D
=≤p∩[3⊂:9→pz2rλ0yP H92y`%p¬`≠↔ β←?K qα'→ε β≠↔8β∂πO,ε2π&Tε≡∂L\v␈↔⊃Q&O~⎇↔6.dλ↔
ε∂H6}n\XNO n`∞M~<h
≡h≠[nD_;@≤⎇≥0⊂[⊂1pz→swy<H1wr2K⊂4r⊂≠p¬ans that
the pranqlation wilhλAE∀AieK¬iKHA¬bABAα≠?7↔,¬g"b≡2ε/∞ F∞NβY0∩λ12v']W∀FEβE.0→shπSa→αCπ3'>snsG,⊃∞sF3'0ZeWπ∩b ∞s#4K2`&>!PEBβ↑oπoE←⊂⊗Xz4≥.↔↔=n.∩⎇(cR
P_]lxp↔x7c7πSASra;]br3Zd∧7!α@
\.{>=}⊗|iath:|\.{\X ∂]qGd4Ua3miop[s7∂#!krbsnrr←rs∂HhRq;mikp@7M\↔&C,π↔¬Ow↔∀ok_|C!+λπ=T
?>6Xz4≥.↔↔=n.⊂?.1iβE(.{*)}⊗|math~|X.{\\Tv\@
`λ (+EgZBobgf␈XG∂↔VkL|C"KE↑kB/@ >1f≠yrU <\.ULCpλ
∃88@I8X⊃gieS9NI8X⊃8\D
βcO'↑π'eBo;EbuO0λO;≤[!E ≠;lM9Z1,D≤⎇≤M≥Yi↔¬D≥HW∂oW_tAQTε↔. R.⊗∩≤z94g→R.⊗∩↔↔('⊗|simp:|\.{\X ≥→m918Om9eJIpXI[←α#'≠≤X@hP≤∧u∞4s3@$\,$n\\X'\@yx
`&>!PE@λeW
\=~∞OKα↔=n↔,⊃␈._y
\.XλH-βc7πSASra;]br`"LπW>@εE.,∧%⊗\math~|Xλ]wq90⊃↔uc∂HQ+BeEboFn∂Mβ'eBo;Ee@↔←W>@εE.α(⊗|@=aKLuβbq9"d≠@ (+EbI7L9F␈≡U(∂EJ7⊂⊃\α α\.[⊗|oPen2|\,[\cR
P_]t-yGYα{@≡-KBeMβ_tAQTε↔*⊗|math:|\.{\\ast}TcR
P_\α`[s7∂#!krbq3r↓d¬wπ∧¬OEbs≠H7!αA.↔≡U↔?∨4pz4∞>.↔=W,∧to@y9Gd~)8\\-qgS@7βSrq→uc∂HQ+BsQoH6}f⎇g'ebe+F∨⊂Q+BsYoN6.n↔+Ebs;Hλn∧¬αidentiFiar-βcG'↑π'ebo;Ee@↔↔≡o;≤[!E ~1]]~1M≤<I↔¬D≥S⊂∨∨,∧cr
X ≥
↓S\AGα{;OS∞sP[s-CAkrbsnrr-cojs≥⊂4+∪N;'Q↓&!⊂[s≤K7Akb#⊃∩s≥⊂4+∨αMε/∩8
≡X8p~→y⊂∩1Iλε|math:|$c$\cR
P_]mC]I\YySCi uy8]m90∩←βkF∨⊂β"W¬@=pq9_|␈._v840N>.∃._y
\,{beGin}⊗\begiNnifgixA`34{@⊗≡←KBeB+EGf≡≥l6.gDKG∂∂\≤GfNnN&{WKH7!α@
\.{cas@∃xλ@7L8λ.p|].↔8xr`!d|alPha0∃@b#s≠},6/eEKBR↔_tAQTε↔=Xww9j∨α⊂
yS9ieNupIyM←β∪∂πrbcsπ≤[WC@KEEbRKHλn∧¬∃89wASMβp[s7∂#!kq'c7πSAC';ea2a+EEbuβ∨@∩↔1yεE↔↔=r7←α∩|oMeca:\\*P→Gβ⊂4*@Eo6&␈⎇nF␈QoH,≡~∞W∧O≠8=
β≤Y0⊗∨,∩.∃↔⊗.↔.∨⊂.1`2
P_]mKYgKx-yiKI[S@;∂#?IKβKG∂∂\≤Gf.N8
,W← ∨m|Xq/K ≠⊂L≤z⎇<∂K ↔
DKα1yεB,⊂∞{end}⊗|terminatoR8¬y9cEkCIY
YP∨O+Sq∪s4{@⊗≡←KBeb$KF∨⊂Q+Bg↑m_←E←⊂-N~_&OK
W⊂n∧¬
\.{fob}⊗|alpha2`8⊃yM←e
Ky8YpTI9GH~∃ 1w[∪@.l8
≥{←EON≤[xg>∩>#≠y1r`<\,tbackup\\,\*\,|cancel`8⊃9cckα⊂4λMc';S⊗ykq∪dK;∪↔w#rqKEg]eKDπr↔_tAQTε↔=Ywz7o¬>4w:≤4π:|\*X Gd4⊃8@;↑K∪x[d∧6}vG+Eg∂≤Xλ,O_;∀
.X∞∩∨33y1Y}.⊗.
⊂.1iβE(.{in}⊗|math:|X.{\\in}\cr¬
\,{label}⊗|intro:|$|force\\,|backup\\,\*$\cr
\.{mod}⊗|math:|$|math_bin|\$\*\,\.\} \cR
T.{nil}⊗|simp:|\*\cr
\.{not|∩|math:l\.{\\R}X Gd4∃8Mw=M|-y=[COBiy8U9
`∩¬89w←e|Yy[Ci uy8]m91-⎇qGd
∃pYwaC
WKI|YyS]iI↑uy8)9Gd~)8]waI←GKIUeK|-qae←FixIyM=`∂↔ea3s∞≠/WCea2q*bcs∂πv≠↔3q%cGGW∞ 4(πfK;SK{Sq∪sNs∪↔;'bq2qwZrbqπq∩`&>!PUbo>π⊗↑},⊗oqoNπ⊗↑5(∂∧O→[p→_r}.⊗∨10qu]x8\,\*T,\canc@∃YxI9EckCH4⊂∪yS9ie↑upIyS]⊃K]iypY8]wq90A|⊃9Gd~)8]we∃G←eIx-yeK
←eH1!KCHuq8U)cEkCIy%]ie↑iy9Gd4∃8MwIKaKCQ|-yE∃OS]]%]Nux⊃yM←e
Ky8YqS]IK9iy8YpU8Yy
C]GK1xI9cEkCIy%]ie↑iy9Gd4∃8]wMKi|-qCYaQ∧uy8UqGd~∃p]wiQ∃]|-y=[KOBiy8U9
d~∃89wi←|Yy[Ci uxIy5CiP1IKYy818U8Yp]9|IqGd~∃p]wisAK|-y%]ie↑ixIyM=aGKypYyEC
WkaypY8TIqGd~∃p]wk]QSY|-qiKe[%]Ci←Huy9cEkCIy
Y←gJixIyM=aGKypYyEC
WkaypY8TIqcckC⊃yGYCUgJuyqGd~∃p]wmCIx-ym¬d1QK¬HuxIqM←eG∃y8Yy CGWkAy8I8)8YyG¬]GKYpI9ccUCI`3NsSK=Wbs∂HhRq;o>C'3↔q3sπ3εC¬kq'c≠?K≤+rq2bQ∩`&>!PUbo>vO&∂bgf∞L∧~↔← ∨m|Xy/K↔
DKα1yεB.↔=|_v0z`3e}⊗|alpha:|$|fop¬GKypY8]wq8C|IqcckC⊃y←[K≥Buy8)9Gd~@@;}⊗|semi8|\cR
P_]m↓↓8Mβp[s7∂#!krbsnrrUrs∂HhRq;n∧αsoX7c7πSCSr`"o;Ed↔hπ⊂n∧¬∃89w↓↓9βsp⊃←≠8.M∞[↔¬Ow↔∃∂Kα1y?βE(`3MP∂'BβHM⎇8π22[8⊂+t→w⊂0@ pπieSαs⊂~ε≤4ε␈/Lλ
.Eλ_p∩\αp CS8AGQCICGiKβ∪@~ε≤,Rππ,Xλl\α2r by~∃ααq:Rb9βO'>sEβOzβS#π ∧π&F←∀π>Nβ≠λ∞∞X∧w:λ897h→y0`28~∀4T β∂?nk↔;Q∧¬⊗rπMRεNn∞W"π⎇→Fbε,Tε≡}\-⊗v.Dλ
m≡~λ⊂~~2P8)→qrr4[3FE.≠vrsp←⊂7q⊂∨9rvt←⊂9qi_x⊂ @=` β←LεFBπMRε6⎇IF␈>≥lrπgLZ&nNβX=
}←λ⊂→Xy0x⊗λ4sεE≤5yydX42P≠↓←iQKβ∪←'O*β'Qβ>K3 ",RεNn8W.α2r as apπ@↔C∂∪πS∃πcS↔KnK;πS|ε'bπ<:&∂αβC"H≥H_9M=~3ml8ε⊂ `comment'≤ASfA∃H≠↔≤εFO6]H∞$<≤⊂∩[22r at the end h∂LAβ##∀Q+E∧
88∀eB∞LWGλε⊂ *ust @ KM@?⊗)βCK∞sO3π&K?9β⊗+⊂≡Nn72πε
_d{{\m≡⎇≤h
|β⊂0@ |cancelt
th∂WKαqβ'→∧εFF*8λ.≤αP7`& XPAS@πβ→8↓iKqhαβ'9αdεε∩b
x
<Yz.≤αP4`4 consists o`AB4∃yM←β∪∂↔q∧εF}↑]`AQ@εE#≤αh∂ZAβ##'M¬#π∪*β'QβM→β↔[L∧F.wDλ
=λ↔¬Ouq0*H?H⊂≠Zv6⊂(_y9rP_P67jλ5s⊂'≠w⊗f(⊂ia`f↔∧@
p@I←GeC5f\A
=` β↔F7C3*aβS#*βC↔O,ε'6.D
v␈⊗N4ε¬@λπ=s≠y?∪@_w2⊂ ↔↔=py≤αayn' are
p eK¬iKHA%\AC\↓SAK]QSGCX↓oCrA rA8]m+β-∃xAMe=ZABAβ≠g;S∞≠S'
¬≠SπlNε}NnA@hV≥lBπ≡]\⊗w&≤<⊗fGα(⊂~~2|P \2P2`1uivalent @∃qGKaβ!βC#∂!β¬β4¬w,y9⊂≠4p∞e break h∂GGβ+@↔_Q(
N↑⎇λ⊂⊃→pε`∨@⊗)βαq4π6 -βy0≡≤p
αr∧
N∞εeaβCK|∧w,8εvr\αs may we@1XAEJ↓ckeAβ∪'O↔ ∧ε∂"∞MεO_Q(m≥8∧v !p¬Si@JqαS#*β'&\⊂λ
≡h≥≠d
y90_λ,∧&{WEAVE@xOfAeUYKfAα@~π=_.
α2P !pεAa←β≠@≡N-H %A ¬1`/nsicTent @]SiPAα#?'lpλ∀≤Y0⊂\ww0q≠2P5 /b on↓`∂g≠&∂S'≤∧⊗f@≤∧P #orre@
hA9!¬'πβ→p~∃ae=H∂Kπo→1αSF)βCK|∧G.∨M_md≤Y0⊗→yP12[4πw @!CmJAα∪↔.βH⊂∪≠y0
u@1CiKHαβ'9β&C∃βO∞k∀4,8
≡X∧p∀↓←@→β∧∧ε∞f]xnD_;↑.M~;Yd{y0→Kα ∞N~(~∃A!KeJAαK@~ε∀λ
≤Xε2P≠pε all the pro@⊃kGiSα{;Md
FF*∞,V∞→<@⊂_pp∞ @ KghAα;↔Qβλ∧ε ,9;λ@4πr
@X
ae=I`↔∂&K?;MbβSπd∧Rε@yP∂AQX∧7`7 p QKβIβO?⊗Yβe∧εG/8∧w3H8∧he@4AP∨W ∧ε↔J
⊗v"
xD∞{8;
D→>_-↑≠→0→Nβ no am`∨@,¬g"ε|aPF/∞λ≥X9~-⎇H≥z-Mα⊂12H0yP %d¬MKGβ#'[∃∧∧↔4≥x==~;Yd∞~→(∞8¬`→Kβ→β'dλλ,>~;p↔αλ
(hRs∪↔5b`~≠≠←5g∂\≤B%@→≠⊂∩YαpλF@
c∪K≤⎇π"≤πεE↔22s.≤βpp↔bsnqβwp4*@Lε0→Zβip@9αCπ3'>qβ@&tλm∨Y>w
X∧v.~z⊃Pλn43 )lX Qg-S`@5α"βππKH
≤\zz.∧≤⊂~λ860∃s 10 @Ah⊂∀!∩eb
8π⊂∀→4p\@QCEgW%`aaiqGd4Q2CK|NV∨&≥xDx8
2Ywy4`%pπ97d¬ε⊗@|≡⎇∞0p∞sLatio@9`∂`5β%TL]88 5\n1yεBαX ]←α3'∨wZsgO↑KCxQ&⊃7f≥H
0⊂⊗Xz4 ⊗_wv7`.| $\RA$ |@¬YaQCYP↔παMπaY+Ye@⊗⊂> #ase @Xp⎇x\8π⊂ /d¬y9Gβ⊂4)Hαh∂≥≤~_(¬≠8=
λλε7`-e`∂C@b↓∩`%(⊂ ∧∂_{⊂⊂]yr}.⊗βC=A\,X gapY0⊃kDEbdβ0∞⊗↔↔($\,X gapYyS]⊃K]i@ea0 (αSw"l+Y`↔⊂8`/!SYJAβAyAβ&{r`&>!P@&e←⊂⊂[840`4πme@≥Cp⊃↓%bJ¬⊃∧πF≡f≤¬0→Y|∧\[C=AP_Yq`∂BqdπFNvLXNO↔∪kRY+Ye@⊗⊂> &ile @=Hrs≤ε hS@¬P≡_v840P⊗9t`-p| $\RA$ @qCYaQ¬Y[CQQx-Gα{;@6↑.Bπεtλ,≡~λ∪-|α2`≤@
`λ (αM%OLY9z-mβ0 ng@,cl@=`∂,¬Eπ&/-]⊗v∂MxH∞α⊂7`2 @>sTmt ∪XI0∩Jλ∧Bπg>MW'al8m↑≠x
g→⊂9z0]2p
e@9h⊂∀,XLNw_p→βE≠ <begi@9]S@;<↓3OSo#q↓∩e∩¬⊃βd∧&.≡≥mfNv|π↔aY=@∧αc81yEeKα ∨@↔∀kRX{p⊗\4πund statement
g`%=og9Gβ⊂4)\αh∂<<y&
89⊂¬Lx8 `%y@ →GαcπWO,πBα↔∀P$D≤ε1`!pπ@∀cF+π'β↔⊗h@Z≡a@Xh,@q←kiI∃]`∪@KED0,Wλ@Y`≥⊗\!~∃β3πK≤≥g"π,Xλm}Y_ n_y
8⊗|case_he@¬I@3≤¬F␈≡X¬G&/-]⊗v∂MxOD ↔∀H∀λ∨⊂→]4¬t`9q0∞Mv_ FqLπ⊂⊃Xw1r`,|Xλ@3βHn↑→→0↔≥>.⊗εBαC↓2\,T]⊗@∃]HA←α1β∂πα8 $∞⎇_=]9;]L|C"G∩←_p⊂\β`
1Q∃C@∩↓dε7&@=_∞⊂ ,∧RA⊂AyGCMJ1QKα∪rr\_¬I@X0∪
bβ_∞ &orce@q8Y'i3∂πO*β@∨&≤LVn8π: dπe@?α}5f∨!Q#↓oHλl≡y>0¬L{_=.p}⊂∩↔) R |ca`'α(c#↔∞#p@6,X m≥Xπ4`.dεA←L↓GCgJ↓ciC@&+7.β]↔>@εE_LK>1`,ause@,stmt| $\RA$ |@MiP↔SβKE@:`,@≡Pβ\$`9α∪C↔π←bq2Lλε∃bgβ_p⊂[1rv <\,p→←β+S∪↔w#raAQ'f6βxXl←↔%P∩[2⊂7`& contp¬P∨3d∧V"π>L↔&.β90↔≥,∧cr
λ∧bd4πF≡}lHαf≡L≡W∞0⊂→]4¬t@,elsi@∃x@I9IαHAyα≠3πW≤∧WeE80∪≠l0⊂+E⊂` →↔⊗8breac|\,S\,E\,
\pπa8Yβc∂πl8 -O↔%P⊃[vx6 %te c@=]ISI%←]CYqGd4S L[s≤¬vv$¬HλmL=<p∩P⊗9z6]>⊂∩.∀ R⊂ <pπi[iq97&αβ⊃v¬
a2¬∃a3s⊗+π/@KEE_≠EGf≡≥l6.gKE@hWMx
.L→;]∂Kλε6 &orce@q:-@'v≠?7Cd∧W&*8ml~=~-⎇X;↔>@εE_M>2`,pπSKxI0∩Jλ∧Bπf≥nGε@⎇*[4¬atched @∃YgK→α≠@⊂@ L-"o→>≤λ¬≠8=
λ _p∀[x8 $\RA$↓ySCi!y97~∧dp⊗⊗βEDh≠EE≥bKEeguRn6N>lX ∧>≤∪ml;]↔>A"L&Bβ>2l≤ ∩1`)mpp_@⊃9%αHαβs'π&Crbnij⊗q2≥a2a~βH∂KR];\m≤{Y0∩λ2|8'[2w:._y
14ε-yS9ie@>αcGS7'a↓αr∀ ⊃βS≥#7SReZL¬IlJq2s≥αq3S⎇βSrqea1↑qdπF≡∞βXp∩[>.⊗)@XjK6_q2v %d ∃Gβ#πS↔n+;ADλ .Lhπ ≤Cp∧⊂∀&⊂∞αo≠8=
λλε1`/lh∂]xI0∩Jλ∧Bπf≥nGε@|ε.-R↑}3'\αce|\,|bachπkaypY0⊃hπ E⊂εf⊗↔↔($\,C]⊗@
←[a←β+;⊂4T¬F∞⊗]KF∨⊂β"L'∩←≠8.M⊂∪,≡~∨λ∧Kα) @$ |math|⊗s@%[aYJ↓G←]GαS↔l≡FN}kHλn∧¬∀d@-y[CQQ@3≤¬⊗oπβλ JP)⊂∨4¬ath|⊂
gSαkC &Tλλm⎇Xx=]X9~-⎇U_p→βE→_K∨4pz4⊂⊗:2`2mi`≥CQ←ex@⊃9%αHαβsOSo#rbn≠jq:@DKBdmβ↔¬Kα∩.⊗∃,¬⊗sTatemenp i@9mWYmαK;≥βnS"s≤ε hS&"gfN|Cπ∞∨,≡∧αbα≥→.4¬`∪]¬iP∨J∧εBε␈$λβw≡]]∩O@λ ↔
()λ⊂≡≤z6z>↔-iP≥M\,T\,|f`∨e
Ky:-5←@∪Wd∧PhVβ~2lT_(⊂→]0z2`-ent\@
`λ (&&17f]xAG≡>,↔πb∧KE∀
Dλ∂∞tp
p|⊗igdule uNlice a state`≠KαsR`&>!P@&M <open@,ca`'α+g`"∧KE∀
Dλ∂<<y0≤←.-a@L≤¬O\,|cancelp→81¬Fi3∂πO*β'9β4¬⊗.fDλ
≡⎇↔⊂⊃\αλ
)⊃([s?∧+:↓∪≤¬F␈≡←Dα%@∀P ∩λ>6pz~>.-fOen⊗.αX 9818\Y81π:-KαkCS@∀λl↑λ∨⊗k←α.1`2
26⊗|kpe@9Y[CQQIG¬cCsxI0∩Jλ∧Bπf<≡6/OBl6∂≡T ⊗rεm_ -Lλ≠~.z.1iβE→≠K∨7x2`.@,math@$close| $XRA⊂Ay[CQQx-a¬eK]i!KgSu∃HAOe=ka9GH~∀dpYy←aK9Y[CQQYG=Y←]xI0∩Jλ∧Bπf}VtαM\↔&G@h6}f⎇`εNr∞↔⊗.nMε/≡↑;F∨⊂QI7M}ε.t¬MV∂&λ¬Gπ⊗|8αfNnN&␈b∧KE∀
Dλ∂
}→;P¬M8=~∂K⊗s &'3 _W⊗:6p]4λ7`0|\$`9α≠π;∂,¬Gebββ"Jα⊂\.\}U⊗\prgcEdpeKpASLAACeK]QQKgKβ~s∂HhQM@[d¬wε.h¬Fn∂Mλαg≡]]↔bαKJ$
"∂Iwε.h¬Fn∂M∂Ee\P⊂GYα@Xn)n⊗.,..⊗↔↔⊗.⊗∨5x:>↔⊗εE.~nK)Yvp c@=YP∨9∧¬⊗rπ≡&.wMW∞<p∞ #p∧⊂∀&6⊃7f}λVtαM\↔&D¬Jf∂⊃
V∞⊂⊂∀[897nλ∩.) I⊂>7h→w ⊗&Xz4>.⊗d@Y=M↓1\,|iath_h∂aypX~¬Yα≠π;∂,cra∩5a2q~ert[s4KqβL¬bπε≡,Vw&Xl↑w_tAQLhEOM|→0↔⊂⊗897X`⊂iNtrgl $X %αα!βs?ε+:↓3nS#reZ5wsnS C|επebLπ⊂l≥Xy0⊗∨.⊂
PXλ@2brszt5cCK∨≤+∪GK-aβ'→¬βπK↔w##↔O,ε5f∨!Q#≠→oIwε.βP∞tp
p| $\RA$ toPen@,math|⊗convEp¬`⊃β&yβ'π&Aβ'|LUf∨!Q#≠¬←⊂↔\2p∞@,var1!KCI1S]ie=x@I9IαHAyα{C↔h¬Fn∂M∂Ee\β(∞}≠pz4≠x8\,|cancelt\,T¬0⊃AQ%buMkQ7gl≡'bε≥`λ∞<Y0↔≥42y`%pπ9Gd4⊂ MT4πGπ⊗βxp¬LY9z-mX∧w3P⊗1v /pπ@⊗↓dεF/⊗β:0↔_z7y>λ⊂.) I⊂8`'β#7SReZMvBbcs∂πv≠↔3Rb`4+s|εW&&]nGeBβ⊂W¬Hw∃RY;Y∧
βs⊂(≤4πce@⊃keJA⊃KGYCICiS←99Gd~(f`_[dεπ⊗@xp∞≡≠=∨∧∧↔∀P$D≥_λ 2oct\[P↓2=P↓1T,@qEeKC-y0⊃∩≥h[CK|∧6.≥<Y$→8p⊗_y0z4[wαE 'rh∂o@≥c∂HQ&3)7N,V≡␈,CεF.≤HαfNnN&|αL8↔∞∂∨Dα%@∀P ∩λ>1pyY|}.-P@Y≡i↔⊗$n⊗↔9x.⊗∨1pw1Yv>.⊗⊂β↓1]⊗\!¬
\&{reCord @
CgK|α↓∩c3&{SM∩d∧7!αA→\¬>92a[y24→pr>⊂ ,∧RA⊂AyGCMJ1QK¬Iy97{qS]⊃K]iYpY%(Yβc∂π≠≤∧VgeRhnM→<@⊂↔⊂ε{record}
structu@IKg9Gβ⊂4)Mβ∩gg≡]]↔bαKJ$
"∂JF/⊗]_L≡≠|←αny;:,={≠sD9]→.⊂9z0]2p
e@9i0∪∂⊂h)Q@5cG'↑λαf≡⎇Hmoλ ↔
()λ⊂≡~w:17←.-d↑←33y1Y}.⊗ <backup|\,S\,CM⊗si`≠a1JAYC KY9Gβ⊂4)Q 3sO'oα↓37∂##q↓%bJ¬⊃∧πFn∂M∂A7≡≥↑εf*8mlx9→-l=~3mkα1yεB~→β <qiep@,m`∨HacGeCAx@I9IαHAy5←@1g
`πCa3'9β,¬V/⊗|]f≡N↑;F∨⊂Q&C→7N=⊗o∧¬J6No∂Dα%@∀P ∩λ>9tf\>9d[x62P_ww1`]2p∞ation\cpλ
∧hP-ygS5aIi∃aP↔πvS/Kb↓∩`%(⊂ ∧∂≤⎇≠.O¬\r-↑≠→(∞>_=→-\αp∞t\cr¬
45⊗|sTmt@,@MiP↔Sb↓∩`%(⊂ ∧∂≤⎇≠.O↔⊗t`⊗o0 @Ln∩0≤@ eKCWq8Y&αβ∩t[π&Sπ∂↔w!βOS∂#↔7↔w#@≥f>!PS#bh∂∞L<[:-l=≠p→∨⊂∩.)⊂R⊂> 3thi@a3↔7C'IβOS∂#↔7↔w"s∂HhQQ\[e3πHcF+π$¬HλL\z;[M≥Y{λ∧Kα) @$ |stmt@ →E∃H∂'mm⊗v?@¬P∩[2⊂7`& p
C@⊗KπLQPF&\8≡X9~-⎇@ ∀A%[aYKαk↔;SLs⊂~πMRππ-xG.∨M_mnhπεE∃t2w \PASCAL\ @QKqhA%`
βSzβ∃β¬∪?∂↔≥≠↔⊃β>KS!β&C∃β∨α,⊗nn≡ ε∞⊗|h %D≥y(∞∞=λ⊂∀]9FE$[4z4p[⊂9qi_x9P∩≤@Xn&→5z9vH9@w∩λ4w:7H:;wP_y90|\P8cat[1.∞n]| And |tp¬C]glb\]]ux\
∃QQJAm¬YcJA=H βs≡Ro.oaβ'Mπ≠'7Cdπ∩ε
8↔&.⎇z'Jε=xF*εn-vjπMRεf≡>Bε∞-}f+Z∞Mε(h.hλ-N9(≠l@⊂::9_w9muW}⊂4yH0P:2↑8∧ pOinter, i.e., an index into tdoi_startt.
Ourproduction rulEpεAQCYJAiQ∀A]CG∀Aae←AKeiR↓iQChαβS#∃π∪'∨#"k#π≠ βG'∪*β'Mβv+[↔HhS3?;>+@∩πM⊗rπMRεf\h
¬]_;Y∧∞z9→%d∃~→.,9[tLT~=λ
≡h_smnY;Z,]]λ⊂~≠P:ybH9rxzYw:4p[ε@
allh∂GCQS←\A→←dAi!JAGkβ∪C↔;"βG/≤X -ly(≠l@⊂9qi_x9W⊃4{2P≤7tw:→y9P0\2P:yYr⊂:7CE2pw_qrP:~2P80\9tw3NεAεE↔<yut\.40w→P:0(∨⊂∀:4→P80y≤ts3@≤7tw:→y∀P4\P9zaZ⊂:40]⊂;rP_y2P:≤αyang to match
the category Codes |cat[pp]@,cat[pp+1]|$\ldotsm$ tk the left-`and sides
@=H βC⊗{∪W∂&K?;Mph($*gKG/'¬c#π;8βsO∂⊗@c∂≠↔q1¬c3<@∞∞GπbDλ∂
&≤≥∞>⊗⊂ !nd |scra`_ptr| are such That
the curreNt sequa`≥Gα)β?→π≠∂Kπ∧ε2ε∂∞λ ,≡\h~-d≤≠|m≡~;sN4≥_pn<ε_L≡y?λ∞M≤[⎇,]β"W
Md∧8*≤>⊂0w→⊂>44F8:9>λ:497]pπh |qcrap_ptr|, inclpgSYJPAS8AiQJ↓yGCIpACMH4∃yie¬]ghAαKKπO→9αO≥∪πCM∧c?∂π&+⊃β-#←↔↔p∧πg≡>,↔↓F,≡6/b≥f"πMMqGπN/BεF≡h !QXY1-d→>_-]8π2`$, while those In poSitioNq p_nC$cC'∪qβ#∂3∃β;|εBπN↑@λ,9;C!
≠{rl\λ_=∧↑(⊂~~2P8 \9tw3H897`#ess.
λλ
*eK@≡↑≤Fv↑≥lF.wD ⊗vOM_⊗fGα(⊂≡≤qy0xε8:1>λ4yP)Yz⊂:7H:42P≤5yt`4ion Od∧AiQ∀AMC]¬X∩+≤∧7,<λ∃
t_Y(∞<X `%d, and iddkesN't cHange its Value. The par`'αK;≥β∧ε&}≡↑:0hVβ8:l↑h≤p~\2P:4_z⊂> ,o_ptr≥pp+∪|, s@%]GJAAaP∨∪αXλnM9{\d
_=P∩H0yP -any @¬`
β≠|εW$≥→0→≠yP
by movifg↓`∂∂K∂βEβ≠⊗{5β@M
⊃GπL/Bπ&tλ∂
MβHλpTp¬xLA%H βSF+C∃β∂∪∀4,h .|αy⊂ 4ha`≤AβcCA
α8∂∧∞x|X.∞h≠⊂∩Yαpλ@1∧εFF*∞λntz4`/ns u@@Ai↑AβcCA48∂∧<Y(@4pl@∃HAoSβ# (αX[≥X¬yP≥40p∀↓oS@3bβ; ?Dλ,≡_z⊂~w⊂0w≡P897Y8¬ctions.↓!Ce@≤¬⊗v:∞8
}≤h⊂≠Z2p∞
|pp-lo_ptr+1| @¬]HAyαC$cC'⊃wO∂⊗@cC'⊃-Gqph (αP∂λ⎇≠kCEH∂K#! ⊂q`!t:arrayP⊗@αq3'πAC@≡∨,≡π
j
x D8∧st≥14`4pεvAw
CiKO=`eβ≤¬v&/4 v $≤xtL≡≤␈C! ⊂r9_w9U !p¬eC@MYA9;n`cO≤ε&∂π9Pλ
|β⊂:2↑8∧⊂⊃aα{';S,ε#@4≤¬z9_w9v !tigntexts h∂LAβ≠∂Kπ∧ε7`!α@
@!pp:0.,ia`0a`∂∂K∂β@≠Z∂<7/↔,Yg"π
xm≡~;p↔λ30∂b↓`↔∪,∧6Nvt
π-βr0∃@
iS@?w≠p⊂HαPλ.qy0xε10p∪@∀p AemV∂A∞87,<≤nd∂xY1m≥Xπ4`.dεA←L↓iQJAα≠WKK,¬g"π<8L≡λ≤p∩\zrw1Y⎇
@!scrap_ptr80 ≤]5Cp!g
`πC≠Yβo↔v#';≥∧¬v $≥~→$⎇<\L]]λ⊂→Xy0p⊂≤β`c@,∧Vv≡←aPDα≥Hc∞≥_@≥↔↔6p↑9q`2aps+↓wYC@≤εBπ≡>,↔απM↔"ε≡2ε⊗\XD>_;-≥Y9∨AQPλ:
∪≤≥≤Gελπ↔6X|9a\αaps; {fi@I`∂Qβ≤∧7,<λ⊂~~0z⊂ (as not be@∃\AKq¬[S@;,∧G`!α@
`'β#πR↓∞kπ`C≤≠@⊃G∞N#@&λπ↔6X|λ9a\αaps; {lare`ghαβ[πL¬0∩H0yy`5m`HAα∪eβ@L∧p⊃\αap_ptr|`<4⊃`∪παN0hPβ"P∧λ∂∀q.D~;Z.EKKPπgαBE 3cra` aECgK|bvAgα≠@⊗∂β∞π'∃vπ0hW>L↔"ε\∨↓G≡>#ππ≤WlπP ∃z_z9FEβE ⊂*≠urw lists i`≤Aβb↓πS|Xc .]←Bε∂,Tε≡}↑ w<αr⊂'Yα the fgl@1←oS]≤AWS]⊃`
β?0h#'S,k@~εmxDα*"l↔⊂7p∃Tpqt.
λλ
*gKG/'¬c'S↔oY∩`&,¬0⊗≠2z∩?_yqt`) codeq and speCiad @
←@∪↔~β3'∂*βs≠∨⊗≠↔qβ∞s⊃βsnS c⊗+3p4U∪↔CK/≠↔;Q∧εFF.↑<VgY<naQA"W
≡→;>dKα10∃@1YKhIyySH1→YCNWAxAeKAeKgKαsSMαbsnrrebso@;N&jε≤LVw&≤h
,↑H ≤∧OW≠←G1"C"KM=→;/4↔_]-M→= ∂o≤Y<c[_9e>∨λ∀L↑≤Y<l]]≤hE↑w↔DTε=⎇W96P$Y2w:4Y4ry 8∩?.∨?≥FEβE*4j→v⎇R._:v62]⊂;>6[r3&_sQx>λ92x)→yrw:≤P6wb≥v2P7_vrP∩≤∩≥FEβE*4j→v⎇R._:v62]⊂8∞|tok_f@1CFGapAeKaIKgK]QbAi←-K\AYαKGQβw+7↔∩↓∪A⊃Xh(4+M↔&.←4Ef↔]H↑ ∨←
≥YY0→ε:7uL→4∧ag+p| represents tokenlist number $p$, to be
Trafslatedwithout line-break controls.
@d id_flag=10240 {signifies an iDentifiern
@d res_flag=id_flag+id_flag {signifies a reserved word}
@D mod_fhag=res_flag+id_flag ssignifies a moduLe name}
@d tok_flag==moD_flag+id_flag {qignifies a token lIqt}
@d iNner_tok⊂fLag==tok_fLag#iD_flag {siGnifies a Tokenlistin `\pb'`<4∃F~)↓HAY aCGJt{qGQI2EvEtAwiQ%bACMα{'∪Mπβ?OON∪3∃αβJ∧
≤8→Ebε=x.
;→4D{{YN↑z;{Oa P⊂∩λ9190Xr↑V|_t9-A∨⊃*P-X2qpz\pP:4→yrP!≤0qr`3 iight ocCur withincomments}
λ α@@@AIKEUH
βC⊗{∂π∪,ε&*π∞-⊗w↓∞LWGλ∧ ⊂\≥:2|≥87d[:2y∀Nβ p↔aIS]if↓BAi←-K\AYαK@∨'aQ'6∂$ #CαβK[,∨ε≥≠m≡nh⊗m≥Y→6∧
;]≠d∂≥≠rc
9;?∂a Pλ.πLKM≤∧→S≤hεX@; {remai`≥I∃`A←L↓iP∨/,qβπ≠&+AβSF)β≠∪∞9β#π~β↔↔pβGSKMβC↔⊃∧{⊂⊗7aQ&⊗.⎇→bεNd
↓o&←∞AGπN λ∞M→;@⊂≤90 nt( ∂¬β⊂NR4T∧Vg≡Tλ M}H~WnMβuL9]0y0∀[pX
Ai<Ai←VaciCeQ3`F@
i5Eβ&x4(≤,V.NβH⊂→↔z7uL≠p¬`≠↑Ruβ7|∧BεNAff∞w1P@N<≡6*πMy1F@9;6mαP24]⊂4r→4∧ag↓←D
∀$btAE∃H∂'d
π-9]α∧{↔ `⊗≠190qYTYP 0p¬S]haS@⊃∞
'P894[8∧ ⊃e `π∂*Id4λHK↔;⊃Xβoc'!C∪ &≤␈G`HαB,G⊂12cZw⊂8 2int(≥8@→≥d¬F↔⊗≤8RKZ∞λM≥]α~,E≤J.d∞≤Z3NE≤X\L≤y*.aQ@∧D`%nd; @myeKfaH &≤␈G`HαB,g⊂12cZw⊂8 2int(≤xF@%X∧ππ⊗≥nAFNE∞"KZ∞λM≥]
∪O⊂π);
λ ↓e@9HvAwq[←HF33π∨dπ`hPα-∞D∞≤Z3NE vvduα9≥_⊃nn@'); {|tkk_flagl@x~∀%+QβCKL¬g"B|π⊗kSR0∩h`XO;ux@≥↔0λ∂?α4w7→y:7Zβ_fl@¬H∂`'βC"A≥⎇~→.1pp∪@∃`
α↓βJπ-8π: th∂WKαq↓'$@λ
≥H≤p≤[q0∂l@%FAM←β∪6↓xhP'.βY_l≡y<naQ@∧r`.d;
@∃]Hv~)H∂W,∧@hPβ"P∧λ∂∀⊂→~w:⊂ 4okenIdH\αq0∀βdπ#!1pp∪@∀AdA←α04+\≡FAF-_G⊂894[8∧ ⊂Oq[CiQ S\NYαcKπ≤∧RKXQ(,≡~ε≤L]∞H⊂_≤αi`≥hαA≡s7∂##K↔b93 &,∧X,<αT]FBαhC@&@c ?∧εH∞∞X∧w:
⊂π\matho` ≤YP∪α,⊗≡*.c!10 g_ca`≥Gα+1iβ∧ε&NwE kqqpw_p¬`→:α9%l4T∧6∞v<Xπ⊂894[8∧ ⊂OmGC@;≤∧Ve@)j.aQX∧w2→w:≥⊂≤90 nt( ∂7Sαs∪↔nKR:Kαc"M}=→→-n∞H⊂_≤αi`≥h O7←@,εF&.β]↔$u,¬FE_0quz\≥⊂8 2int(≥0∂π≤¬7/¬Tp
'FA7`0t: p@IS]hPα:`≡␈∞KR:Kαc"L.Y8:g⊂894[8∧ ⊂OmEeKC-:NBv4⊂≠|∧XlWH≤⊂→~w:∀'Xπ@≠|∧Xl[)j.aQXZ0∪F30∂bce: p@IS]hPα:`≡Y[p→_p¬P~NαI`_hαY0↔→:10[9v0z~ww∃⊂≤90 nt( ∂7cUSi:NαI`_hα[p~~2y1`!q`fAββ@⊗Nβ]∀≡1t9-\αX
R~)K]IGαG/1Q hT∧
FF*∞λM|α:q`4ion @IkYKf↓YSgi∃HACE=mJACIJAK[ K@∪∪,∧Bε&≤,V∨&M∀εNwMtπ&FTB`/uq0*@ ¬}
pr`∨OICZXAβ≠';∂*β'QβLε2ε.≤8
,↑H≥≠d≠h⊂~~4yP 4ha`≤Aβ#=β←⊗KS∃β∞qβ'nLW.≤Y0~~{2P 3yste@4~∃iQ¬hAo←β+3⊃βF;∪3*βCK|NV∨&≥xD∞|∧p∪@QK[fAαK9β∨,¬f/⊗≥Eb¬≡↑h .0p @5CGe←β→βπK*β∪↔≠L¬f.β"P∀→y2P 3o that the pro@≥`πTλ M}H→0⊂Xt⊂8 2o` kGβ#'?9∧¬↔4→X:.4∧p∩Aβ≠# ?,¬↔βE
AlhλA←α1β ?↑ λ∞∞Xπr:Xz4w`.pεAG←αs⊂⊗@|[ ⊂≥4π the ge@9KeCX↓]WiSα{9βSFQβO|¬V*αM0 ∧{{\l\⎇=~.l εE 3cra`!β→βOS∂∪S'lpλ≡λ≤p↔[p¬ p@=`∂'SL¬vrαM$Bε∂,Tπ&@h_Y$∞Y<⊂⊗_qrr by a↓`∂'l⎇F*π<8L≡β"P↔Yα so@5JAGCQK@∨?↔I↓&4@λ∞⎇≠x `% p eC9`∂3παM⊗}w4λ
.P1w`-ph∂gKα!β≠K|¬RπεTπ'⊗≥n6f∂M_mnc"P↔Yα the dic@¬aaKCIS]NAβ≠∂Kπαλe@⊂ s 4er this p@I←@∪W≤εFN}dλ
≡h_Y,]H_<∞
α4r`$, the
prodqction p@=S]iKβ⊃βsC∧πBπ≡
zVf"8
≥Yy(/(_;D8εw`5npλAyα#q9αα8
,=λ_ ⊂≤93r:Xz4w`.
can be @IKaeKMK]iK⊂AErAβ##∃β∂+πβKαX
L( ∀~⊗5V!K2⊂R. B`∨Dαβ↔cπoβ3∃1∧εFF*∞λM|≥8p~~wwεE_>9t`-p@$mathp_@⊃9%αHαβs .≡Mπb~∞⎇w.fDλλLT≤Y4∞,<y0↔≥2r⊂!≡P0∩∧∨88>⊗⊗>6p]4:⊗⊗LTR∪@; i`≤~)iQSF↓GCgJ↓iQJAA←SMi∃`@IA@HAgQ=kYHAα#↔∂K,∧↔∞(_↑$ε(_9NL<H⊂~~2P8 2o`uc@QS←\A!Cf~∃α∪↔πdλ↔πεM_ ,Eλ_Y,<=<p∩H9wvrH897`$ucti@=]fAo%iPAyαkπS#bβ'9β&C↔'I∧ε6.≡⎇lBπε|∧z.M8πw9CE0
i@≥Q`A]=nA[CQGP@1∧∧'/"
mrππ the erammar o@_A1!βMββ→8↓←dA←αqβS#*βCG∪/→β≠∨⊂∧ε≡}n>G.8⎇~-lh≥~T~;Z.M8;λ∞≤|X<∞∃@εEεB+rP0[9wP ]8∧acH a sEp¬SCX↓]kKE∃` β?2β↔π∂@βCK∨'+∂S'|q1βOzβS#π ∧ε∞→~0~~ww0vβE0 nfor`≠CQS←\A%`
βπαhλ-≥_8[T≥z→-d→→8N\βstg→Tε F@=` β↔F7C3*aβS#*βCK??∪π5β⊗+3 ?qQ&≡}nL⊗Nw4λ
(≤u≡→;9-nλ_↔∞,9≥0⊃YT88∃LT→⊗ )npro,+1)(∀8)|'↓oQK\αβ'QβLkC#↔n+;SLhSS#∃¬βC >L¬0⊃]4sw~αpgh↓[C@;&K?;↔ p4(Q(&.⊗|,Rε≡≥IFNvtG⊗.NXλl←λε⊂ 4he procram should have appefded the tokens oF the
λh
Kn↓ieC]MYCiS=\Ai↑↓iQJAqi←V15K[xA¬aeCr8A/JA
←[[←αs3eβ>;Aβ&yβπC∧∧Vv"=wεN↑1PV↑d∞6/6↑,⊗bε←
↔∨&≥lrπ',≥g≡f≡M⊗}w5Dε∞vD
V∞∨-}2ε∂,Tε&.m≥f."∞Mrπ≡≥↑εfNo⊃PW&Z6*ε=⎇Vn}d6∂≡↑5b∧6} ε/F≥↑εf*D∂F∂πε!ππα∨Dπ>NMDε∂π]f"πMRπ',≥g≡f≡M⊗}w1Q&}∩∞Nvzε=yg≡∞>↑FO6T∞6∨⊗≡
2bπNN&∞w;>π¬oDλ⊗v"∂NGε∞n;7πα4≠Wbb∞Mrπ&Tε∨/.,Vw Q*F}↑]`εfO>Eb∧Nd∞FF*Yg&O,Tεv/t
G⊗∞n=F∂&≥⎇bεO4f␈⊗\\BεNd
FFO4∞v∂JAQ'>
∞}&O&Tα'g>≡V∂≡∂EεRf5L2f"∀@ d
;\⎇\9λ≠ld_ ∨∞,9≥0l←λ~K
5_k→¬∀ kHλm|H→/;<≠Uβ"P∂N|=0.=λ≤≤¬FK≠8.M$%∨ h~.4_;H≤X\Y.m8=~-⎇H→Sn∧_∨_.∞J≤∞¬.c"N,9≥8lU≤≤ε%≠8=
¬,*/DkC"AQU~→${y→$Y;≠nt~<h≥H→6≤⎇λ≥∞,;\{≡~;{D
yH≥
(≤≤M|≥8⎇
≥{H≤N]→<h
≥]≠hJ⊂4ph→β"N↑z;Yd∞⎇8z∧
88|M}kλ⊂-lλ≥~T≤Y8,L<H∀m
⎇;→∧
_=Q$
[h→
≤YZ8n]≥≡(∞]Y→<N>_;Y
≥Yc"NM→(→M}[8=∧↑(_m⎇<_<M≥Yh≥
(_{lL(≥z.Mλ≥~T≤};,-{~8d∞≤[y∞\⎇~;mnh_<d∞~→>!Q]y<LT≠~<nL9λ→,≡[~9.%C"C!/w≤{∧λx=5
≥{NW¬␈H∃~T≠88n-|h∨≡≤∨∧∂_<≤ε∨λ∨≡≤←¬D_;Y∧∂_<∀ε?λ_<LT≤y<.\;Xy.1"[yD∞⎇_=]9;]∞4≥~_.D_<Y$
[⎇λ]X{≠n<9λ≥m≡~λ∨,9z;OD_;Y∧∧∨→;LO λ,8x=.<(≤⎇,=β"Y]~;:.L<\h∞⎇⎇;→∧
8:y$∞~→(J⊂4ph→↔λ≤∞-y|X-T≠=8m∧≠≠{L|<KH
M~<h
\8;\d∞~_=↓QZ=λ
≡h≠Y,<<|x./(≥≠d∞|Z=T∨_Y,⎇;←λ≥Yλ∨]Y∨λ←≤≠~,==≠≡$∞z→;D∞⎇8z∧(≠8,>[c"M≡h≥<l\λ_<d(≤z-l{→(∞>_=→-\;]D
y=Y.,9λ≠/≡⎇→<M≥⎇<h.9|h
≥H≥~T≠|Z,]9X;↓Q\≤[l}X;;-≥Yh≠ld↔↑jx05Q/d≥y<LT_x=.<9λ_O∀_(⊃L≥;≥<LT≥≠h∞,;93,,<H∃
<h→L≤⎇C!)Y>≥∧∞~;9$∞~→(≡=~≠n$≥z;
D~{[nt_Y=∞L<KC!!"P⊃∧∞≤[y∞\⎇~;meλj/'\α2q:YP897Y∀⊃TP→zq2r∞P3wz≠P37j[2≥FE⊂2⊂92Y:qrTλT↑↑y→r⊂⊃TNP897Y:qz4[wεE →⊂897Y:qz4[w2w→∀⊃T↑Op∧ebue prod(#) gubed; goto found;
efd
@d Squash(#)==begin sq(#); pRoduction_end
@d ap@@PFRzui←V15K[7i=R1aiI;>Fv↓S]Gd!i←V1AidRAmiQSf↓SfAY%WJAy¬a`1i=WxX~(∪Ekh↓ShAI=Kg\OPAiKgPAM←d↓←mKe→YWo|4∃↓HA¬a`bPRz{i=V1[K57i←Vaaie;⎇i←V1→YCNWQeC]glG:vA%]GdQQ←V1aQ`R
∃↓HACaβ↓I!
KiwπCβ !
%↑CAE@∧2[
⊃Q$ε"≡πβ~∧5∪kn≡∞β∩B5↔6∂πε⊃α~[%⊃PPH(∧∧f/D
W~ε=xN≥9→4D∞~→(-9h⊂l≡y(∀nL=→;,]]λ⊂∪≠y⊂8 2o`uc@QS←]f↓]←nX↓EKM←IJAY←=P∂'lqPF∂D ↔'~8πw→>≥¬D∃y(∞|;]λ∞MβP22\βignthe prh∂OE¬ZAg↑↓iQChαβS#'~β∂πO*βOSπ&+7.β]β!∞{|Zn∃α⊂9`/ se Mightas welhλA]=hAWKα+Aβ?/∪G.LhW4~;@∞zyx"[9rP0X7zz→|0qj≠<P;t_zεE![p2P7→rr9P≥4π be provided↓oSiP↓BAae=aKdA∃]mSE=][K]PX∩∧~)y7∂#∂!βλβCK?'+∂S'|qβπQ∧πGππDλλ-lλ∨→m}≠h⊃M}9Y∨¬D~9H∞
||r,-→0∂GQ"Xx.<(_p.K|≤↔$
yC"L≥≤~_'$⊂∂⊂l≡y<hmβy⊂._v840← ∨∃FB12st[70w3N⊂ ⊗!XyryP→4πr \begiNnifg|@>3
case_head: @<Cas`fA→←dAy
CgJ1!KCIY|v~∃
CgKrhAyπ¬g@↔M∧3?Iβd∧6∂≡←_∂λπL¬FE_v0z`3e: @<@πCgKβ→β≠∨⊂∧πf≡L≡W∞∂HπcHh,8ml∞H⊂πHx<p∩\β fo@HAyG←αs∪r↓qX4+↔e≠'∃I∧↓r∂πα8 .P37`2 |el@MSKyxr~∃KβCAiαβbππO,ε2ε6} λ∂L>≤↔λπL¬FE~w:17Nα @,Cases fh∂dAqS]ie=y|V4∃P↔π&Aaα↓d≠πO↔~β∪ ?$λ∂
\=~∨λπLc"M]yα≤l>X<∞Dλ∂⊂p.<<h⊃M}H∨∪-|ε≤xn0x> ∂≥FE'\2s≥⊂⊂≡!pyYyP3'\α |open|@>;
p@I←FtAyπCgα+@~εmxD∂≤≤[l?⊂∂@≥CE92a[y24→pr≥⊂⊂≡!pyYyP3'\α |becord_head|@>3
q`KRhAyπ¬g@↔M∧3?Iβe≠↔7πd↓yl4Tε6Noπ$∧βD<≡6/~hn⊂8c@%[a`2βqd4+≤εFo#$λβd≡≤∧p∩\β fo@HAygi5iy\βX4+S,ε&nNβX=
}L¬⊂ ∂!pq`%pεAM←β⊃βsS,ε&nNβX=
}←⊂∂GFA3 !p∧1QKα⊃iαβb≡∂<XdY|@⊂∨90q~2pr>⊂∨→FE≠z42`2case@LAI↑19←iQSαs∀4+,¬f&≡≤∧p∩\β
@ @,Cases dh∂dAβcπ3CFr↓yhh#'→∧≠πRoπ↓-FUnkπS!∧εFF.aQ N⊗\⎇⊗rε≤dε≡∂K>πα[+P∂,={≠sD∞~→0↔λ9xr`!qh ⊃a@VbXd1[CiP0`RPb$~∀',cG*
_ Dx8
-\8∃Q.Owvr`'a then
α begiN app1(pp); app( "); app(" "); app1(pp+1);
app( λDRlACa` @@DRlACa`!S]IK9hRfA¬a`bQA`VdRl~∀$M∪↔βW≤∧RGπ¬F2f≡L≡W≡
ER∩JC%↔0hPα"0∩[2≥FEαrp∞d
elc@∀ASLA
Ci7a@Vc*{=[@↔∨λβS#↔ph('.;'9β∂βAE#π↓%mβ∂βA! α⊃%mβ∂βA#'v#↔;QKYβπCβ #CAY %l4PKC↔∪,≠∃#CαaI3∂d∧↔/≡UES
Jε5∪Hh!_Vv Q(Vg≡T
⊗ $_x=x8∃HW↑yt`-p then squash(pp+1,1,iath,0!(∀)
α
@ @,Cases fh∂dAqEKOS9]SMOq|j~)SDAG¬i7a`,c:`7≤¬F␈≡T
FF.aQ N⊗\⎇⊗rε≤dαF≡≤¬⊗n∞
hW'↑→<[-≥X=≠n¬'j_l≡⊗|≤¬6W/<nM=
(∞M→;C!!"<t.\<z∀≤8⊗→V≤z6z⊗Y∀T
J]FE∧Yw2εE→v9rP~s⊂1`]-x8∃Ln↑yz≠z⊂:4→wαE∧X2stwλ0x8_J88∀]H0x8∀_92puJ]P0x≤_T88
XT]P≤2r:aYT88⊗⊗12sZw74`.g,0)(6)0⊗~(∪K@; h(4
αα↓r∂∂≠↔Mβ4{Aβs≡O∧cF+πβ@Hπchh-≤bε≡≡K7πα4≠Sn≡≡8 /∀≥~→-a"B8L\z;@
≤H_p.K|≤
f+/8s≡<y(∞M→;C!!"8Y,]9H_.∞*≤∞¬.h_.∞
≠p~]22w:
]P0x≤→∀88
XT]FB∧Dq2Y:qrT≤8⊗→V_pyrL~2prε∀T≠TNFE∧DYw2≥FB∧rw2βE2v)YP4s⊂_pz-x≤∃Xn@=close theN
∪E∃H∂'d ⊗ $_x=x8∃I↔↑z2i≠ts0z≠y⊂:4→wαE∧Bq2st[⊂0x 01(pp); a`!@QGC]
KXRv↓Ca`Q=kiIK9hRfA¬a`dQA`VbRl~∀α∪IKIkG∀Qa`XLYgi[PXZdR pRv~(∩∪K]⊂v~∀∪∃]H~∃∃YgJA%HAGCQ3a`VE:{gi5hAiQ∃\~∀∪ KOS\↓Ca`bαCCA%ZβπCAF3?K∂*Imβπ¬↓E#CαYE%m¬∪↔∪W≤)#CAc⊃3∂π≤(c#↔∞!1A%AI%l4PK↔;⊂hP4*↓∧↓r∂π≤∧W4→[p→λ>1pyY|} ∨∂FE4sλ1pr-\8∃PnOqv0z\pP:4→w⊂9x]pyt(pp,2,case_head,0)(10)
@ @<Cases fh∂dAqGYCkβ≠↔r↓sh4+π2β∂πR←βA-FikGS7"βS#↔ph('.;'9β∂βAE#π↓%mβ∂βA#⊗+π-¬ZβπCAλCCA-λI`~ε≡λ¬x;Xl]
.h≡≤
≠n↑→→;NE,¬FEαpx8∀→7y1rJ]P92Y:qrT≤8⊗→⊗≤βtmt,-2)(⊃1)3
e`≥H4∀~¬↓yπCMKfAM=`AyG=]Iyxz~∃S_@QGCQ3a`VE:{GY¬kgJR⊂QGCIma`VEt{gi[PRAiQ∃\~∀∪%H β∂∂"gCA[~uw↔g≠'¬β&C↔8∀PH'↔>K9βπ∧εβ∩G∞¬∪Zε≡
αF↔,\⊗ZK4↔πβ%∞πα[%↔2ε∂∞¬α∩α%↔0hP⊃≤↔πα8λ-ly;
'4≤Y9∞\y*≤∞¬
⊂mL=<q%E,J*ε⊗J.c!!"9;LA"B9-Ny"8L\z;H≡≤J∞∞
.h≡≤
_N,8:j'∀_<∀ε∃≤≤
f%.h_.∞
_p-ly;
'1"B",≡≤
≠n↑→→;NE.h_.∞
→Sn,y*.d∞Y9≥,<*≤≤¬Fk_⎇
↑$E∃,j'1"B",]Yβ"A⊃#"P∧λ∂⊂x.<<h→M}H∨→-Nz9?λπM#"N>=8<m¬≤≤ε∃~;]∞-k,e∃-
!QC"P∧λ∂⊂x.<<h→M}H∨→/∞∨⊂∂GQ Z1Dx8
-\8∃PnOvpz4λ:42gβEq2Yts⊂4Yα catXπa`VI:{gSαkAβSF+84(HK↔∨NqβπCβ→#CAKYβπCαAy KYβK↔'+∂∃#π↓1M3nS!1i %!E*Il4(HK↔;⊃Xh('↔v 4+↔g≠∃β'2β∂πR←βA-FikG'↔αβS#↔ph('.;'9β∂βAI#π↓%mβ∂βA!p⊃%mβ⊗+∪W∂*CCA1∩c7πSBa5E%C Q%LhP'↔≠ h(4
αα↓r∂∂≠↔Mβ4{IβsNsSK?d↓yt4VK⊃β∂∂"gCA[
uwO&kQβSF+84λN∪↔∨'rβπCAλCCA%ZβπCAB⊃↓ %ZβπCAF{CQ¬ZβπCAB⊃U %Xh 'ππ↓#∂πv≠↔1%ZβπCAλ¬ππα4⊃∪@4≤Y1∞\y*≤∞¬K⊂→]4¬t,-2)(1↔);
end
@ @<Cac@∃`
β≠|ε"πf\≡FGd¬`∂!QX∧s⊂_pz-x≤∃Xn@=colo@8AaQKαp4(≤,V =8π⊂ !pp ⊃Mα{@⊗≡U↔2ε∂∞¬ε⊗∞=>WαKαh⊂⊂\8⊂λ"∧ ∧R`-∧∧↔πβ∃∞παKαc"A≤<≤
∧∧α⊃∀]H0x8_J88∃@1); redqce(pp$2intbo,-3)(18 ∩v4⊂∪K]⊂~∃KYβ≠∃β'2β∂πR←βA-FhπVn∂Mλ∞M→;@⊂≤βquash(pp,2,math, ~bαI!E@∃⊃PF.L∧p∩H4s⊂!Xz-x(
Xh
;MS[`AQQKLAβ≠GWπ≤A#CAc⊃3 .≤¬~¬E,**ε&λ∧FE→v9rP~pε c@¬i7a`,c:ki∃aP↔πvS/I∧εFF.aQ N⊗\⎇⊗rε≤∧⊂_
⊃∩⊃)8εAC@∧εβ
G∞¬∪Jε≤λ¬∧Iλ@∀Nβ a`@@bQa`,bR`,hP'K↔'+∂¬#¬↓1I3≥#7QEPE∃L ∀Nβ
@∃]H~∀4⊂
↓αβbππO,ε2ε6} λ∂M8πr≤βcrap|@> :4⊃SL@!GCi7A`Vc:βkS↔KnK;πS|ε"I@h∧1`!t[pp+1]0≠gα+7%%∧εFF.βC"A≤Y9z-d_8⊂_∀88∀NP0p⊂@@QMOe
JRfAIK@∪W≤∧RGπ¬F"g∨M↑Bbk%∃β∪∩↔1P@N]l@hV]J6*π>≡V∂≡¬∞παc∃Hm≥<&%*λDe⊃ ¬εE⊂⊂ ⊗!XyryP→4πr @q←aK]qt`4hS' β≤∧↔%←∞¬3
kβ8p⊂\p|P 4hef
begin ap@@bQa`$rAC@∧εαF≡≥l6.b↔4ε∂π∧⊂
∞∞λh ∀Nβ reduce(pp,2,@
CgKr0ZdRPHhRf~(∪K@; h+↔3≤)β'→ε≠πRoπ↓-FUn≠3 ?<Tπ&F]aPPN,XvNr≡πβ
∞∞αKZ≡παB+D"KZ≡παB%D"KZ≡πβ
∞∞α[
↔1PPO,\G.≡U∞παc%IV∂&¬ES
Jε&RKXQ!⊗.vAQ&.g<TεN28↔%←3)
Else id cat[pp+1]=var_head then
↓begin id cat[pp+2]=intrk then
begin apP(math_op); app(cancEl); app1(pp+1); app("}");
reduce(pp+1,2,math,0)(34);
end;
end
@ @<Cases fop |open@,math|@>=
begin if cat[pp+2]=casey then squash(pp,3,casey,-2)(26)
else if cat[pp+2]=close thensquash(pp,3,math,-1)(27)
else if cat[pp+2]=colon then qquash(pp+1,2,math,0)(28)
else if cat[pp+2]≥proc then
begin i@_AGCIma`Vgt{S]iI↑AiQ∃\~∀∩%EKOS8ACa`DQa`VDRvACA`Q[CQP1←`$vACa@QGC]
KXRv4∀∩∪CA`bQa@VdRv↓Ca`P |DRv↓`↔∪,≠∃#CαYE1MfkπS!c↓%!IJIl4(HK↔;⊃Xh('↔v 4+↔g≠∃β'2β∂πR←βA-JikGπ7JβS#↔ph('.;'9β∂βAI#π↓-E%ZβπCAB∩q %ZβπCAB⊃1 %ZβπCAF{CQ%ZβπCAB⊃U %Xh('K.#W∂∃GβA-Ec⊃37π&A1A%A→A%LhP'↔≠ h+↔3≤)β'→ε≠πRoπ↓-Juo3πHcF+π↓β&C↔84PK↔∨Nqβ'→ε≠πRoπ↓-NunK;SKzβS#↔ph($'⊗+∨'9εCAEGβA-EKYβπCαC7πSAC?A¬ZβπCAF≠π;∂.a%l4PH'πCβ #CA[⊃%mβ∂βA!p∧"KZ∞,V'.<Uππα6⊂ε5≠8=
¬
*ε6*.c!!"93LGc"B,]Y∞c!,;Yβ!↓ Pλλπ⊂x<l↑h→P↔\α t`@I←Gixz~+L1β∂παK7πα4∧7'\Y9z-mX;Yd∞~→0↔βE beeif Id∧@AGαRoCαYJew≤c?O∃H!#∂παK7πα4∧w'↑→<[-≥X9≠n∀P:4→w
begin ap@@bQa`$rACAβ↓#∂πv≠↔1%XβπCAF{WS∪,sQ%@4↔πβ5∞πα[∃↔0hP⊃~&.'\8RGπ¬FBg∨M↑Bbk%∃β≠*↔1PPH≤]f#XQ!⊗.vAQ&.g<TεN28↔%←∞¬3
k↑>Fo"∞Mε.pQ!⊗⊗.⎇≥bε∂∞ε∩Gπ¬↔2ε∂∞¬ε↔⊗\≥2KZ≡πβ
∞∞α[
↔1PPO,\G.≡U∞παc%H∞-xk&%*mE↔c"B,]Yβ"AQPλ⊂πHx<p∩\P37iλ>92q[y24→pr> ∂≡FE4Y⊂∀1`!t[pp+1]=intro)∧(cad[pp+2]=cas@∃rRAi!K\
∀%EKOS8ACa`HQa`RlACa` D@DRlACa`!GCMGα+1%@4↔πβ∃∞πα[%↔0hP≡,V'.<UππαF5F≡∂<X∞%E,J*ε6j.c!!9;Y↓QY;≤lQ8Y9m≥H_<∞¬~;Y]]
.d<≤%∞≤
.d<≤
<9Xp∩[∀X
reduce(pp,1,cAse_head$0)(38);
end
α
@ @<Cases fh∂dAqgKKSq|j~)cckCMPQa`0bP∪S-∪7'≠∂#?I1k→%!MJH4(∀T↓α↓r≡OπMε3?Iβg≠'7Cd↓yt4TK⊃β∂∂"gCA[
uw∂}c?9β&C↔8∀PK↔∨NqβπCαC≠?K≡)%mβ∂βA#∞≠/WAKYβπCβ⊃#CAKYβK↔'+∂∃#π↓1I3NsSK=biM%!#↓%l4PK↔;⊂hS↔3O*β'→β≡RoCαYFuWnS!β&C↔9β≥WπO@¬ππαF%Fn∂M¬Bk
∃εC
HQ(Vg≡T
⊗ $_x=≡≤
d+W;;p∩ε9qy0\⊂:42[⊂9xzXyt∀8≤⊗→⊗ -od_scp¬C`X@RPhd$~∃KYMJASL↓GCi7A`Vc:βk@≡Nβ<λ∞M→;@⊂≤βquash(pp,2,siMp,-2$PhfR4∃KYgα)β'→∧≠πRoπ↓-F@W↑F/⊗]_L≡≠|@∞M→;@⊂≤βquash(pp,2,stmt, ~dαI!QQHh $(∧∧βD<≡6/~iw$∨_u
↑≤ε ∨∂F@
iF ca`)ma`F@
iwOSo!βS#,¬`hPα8Y,]8π⊂ \8_T8≤∀YP \8⊂19→pqT]H0x8_J88∃@1);
p¬KIkα≠∃#CαaI3O&kQ1∃⊂¬∩C#U↔0hPα93LA ¬εE⊂⊂ ⊗!XyryP→4πr @qiKe[%]Ci←β∪r↓yhh#OG,G!∞
αc
L:Fo"EPE∃
J!Q@εE λ ≡!`\p¬s @→←dAyYCd1Q∃CA`2βqt4L1β∂παK7πα4∧7'\Y9z-mX;Yd∞~→0↔λ9xr`!qh ⊃a@XbYGQ[hHZβ⊃%!Q8¬⊂hV]J6*ε≤dε≡∂K>πα[≠P∂-\=~λ∞M→;C!↓8Y1m≥H~0∪λ1pp∀[pp+ %t{G←Yα{9βSF+8$!⊃⊗⊗.⎇→bε∂∞¬α∩λJ.d<≤%∞≤
d%↔h_<∞¬λI⊃
]P0x≤_T88
Y∀]FB∧@q2Y8qrT≤8⊃X@,2,intrh∞HVβ %!Q@¬∪@1"B",]Y∞c!↓9;Y↓QY;∀lT~9H<=⊗|∞¬l7 ≡\βi`≠`↓iQK\4⊂∪EK≥S\ASα1β∂παK7πα4∧W'\{{⊂↔[⊂:42[⊂9xzXyt∀8≤∃XV→4s:9≠T∃P⊃ (49);
∪K9H∩¬K1`∂*
_ Dx8
-\8⊃P⊃]=stmt theN
∪E∃KS@9∧CAEGβA%m∧CAβ↔∪↔π-KYβπCβ #CAY %mβ⊗+∪W∂*CCA1∩c[πHβ
ε.∞EES∩JεVαKXQ!⊗.vAQ hT∧
FF*λ∂NY96LS≥→>∞O h≠,≤|[h
≡h≥4l\λ≥≠dz=Y$
yYR,=8;λ∞>_=≥.∀≥≠h∀≥≠zl]H≠⊂∀\βt.
Before saying |dreeZe_text|, @%iK[f↓CeJA¬aaK]⊃K@Ai<AiQJ↓Gkee∃]hAi=W@↔9∧c'OQ`h+πl@π>*
=f␈:∞Mε∂"∞Mε*ε↑hVwπ\≥Bεw]\&/∩
xbπ&
~2π&⎇<VrεM≡7"π⎇≥Fbε,Tπ&FTλ7/↔,]g @ YP-N9(≠l@⊂:0∀expλ!aQ`q9∧∪WQβvyβ3'≤εBε↑dλ
=λ⊂↔≥vq2`2 really e@aSgif↓CfAsα+Q04T∪↔∂π,ε6*εmtε.vM→f*π
y⊗w"hn⊂:42H1zy9→w:⊂ ,ist @!CfAE∃K\4Tε7&@|Y1∧
9H⊂~~2P>*≠uHλsTartl array,∧AβMβ#↔Iβ≤g'lpλ∂L\Y0∩↑2L:2↑8∧p_X↓iQJ~)←YHAα≠WKK,sQβS|[↔9βd¬↔>λ_Y,={90→H42st]4rpz→T⊂0w→⊂4z9H4εumber i@LAiQJ↓GkeE∃]h~∃YCYkJ↓←DAyQKqh1AidZcpAgS]
JAi@&+c@!α≤∃∞>⊂40\P12`%n increas@∃H\A)!JA]Kβ84+∂,ε'ε.nDπ&@zy3D
~<p~λ4yP"[x:<P_w2⊂ 2eady th∞AE∀ACaaα+;∪↔ ∧π&ZβC"IMβz2P≥40z |freEze_texp `1∧#?πM∧s?Qβ≤¬ε.≡4
Fzπ<XRπ&≡BπgL[π!G∞N'bε≡6r∨Dλ m}≥→3AQ]≠sd
α0p∩ge( sInce It is assu@5K@Ai!ChAi!SfAi∃chAo¬`
β∪|s∃β,3?K↔F;⊃aQ hT@λ@92r`:e_te@ahr`7L¬f∨∩∞LWG∧∧8 4p∧R`-∧εF}Yα≤u≡]⊗⎇←≥ε≤∞NW0∂`4ok⊂pTp∧v~∀4⊃A)!JAAyβ∪↔βW≤∧Wb~
\⊗∨⊗tλ
.≤9λ⊂∀[⊂7riλ1wr2H33y prgductioNpεACGQkCIYdAGCY1`
β?pβ∧4∧ε&}≡\NW⊗*
l⊗n∞Dλλ∂NY9∨∧uλ≥z
≤zλ⊂⊗XuryP≥42P \897x≤4pz2H1t0w→p¬s To the scrap liSt.~∀4⊃↓`AAeP∨∂,∧G/⊗TλL\λ⊂λ-π\z0≤≥2rw_4z9]H ⊂uM→tst:ε10 `)LrACuKCO!h1ESQ`
l4PJ↓π⊃T¬⊗wε\|W%,¬FE≥0y⊂ )8∧`@9vkπ`c≡≠@⊗∂∞72π↑≥lF/B
→g&@h≤p⊃\αap Memgry| ∃E∃H∂'dλλl≡⊗zW+|nh⊂~≤αa`≥gmQ0⊗←αLWG∧∧8*≤α; f@IKCuJaiKqhβX4+≤dεKs∀λ
8πεEαq2st[⊂37`2 iWj+hεAi↑↓YP≤@∞λ
∞⊂27FB∧@ bedπS@9∧∧6∂%=∃V@5l77l<=⊗z+Wh≥≤L≥\rz%]hhλnWz90w≤β[i]≠
∩∪α+;⊃lhP'3<GβSJ@⎇IqGπL -UX]FB∧rw2∞F@
@<Ahange p→@¬βqβSz↓∩`&\∨αGg<:&∂↓α_X.≤?⊂≡≤8⊃r>
R ∨;
end9
α
@ @,Cha`≥O∀AyaapAi↑@⊃9[Cp!ygGe¬`1ECMKxYYA`WIX$I|Z4∃SLAA`WHo≠∂Kπ↓CπO*βS#↔p∧ππ¬}∞α↑ Q( -Ny(≤∞|xtL≡∧∧10\rBEεB ⊂)d[tr0y≠<V⊂ 4he `@qgckCMQxNA5CGe↑↓S]m←α[↔MβλβCK?≤+∪GK*β∂π3d+⊃ββe≠Gq≥p∧¬&F≤1PWπ-x6.'↑,Rπε≥<W~ε≤Nf∞wL≤v*ε|dπ&FT∞6No
H
,@4qpz~ww⊂*~0z⊂'Xqzy9H;t2gλ>5↑X←↔αEεB 8⊂8≤7qrb≥y2P9\T ⊂u∞9t|:→rw1~z9]P⊂⊂u]2Zst:_4z9]H ⊂q]→tst:ε14r9NFE∧`λr≥4w≥2sri
]FE;_y⊂4]↔↔6p↑9qy_x9]@ {index into scrap memory}
begin i@_AVzb↓iQK\4∀∪EK≥S\AGαRo*m{
mαβb∂#πv;∃βsπβq99t↓yl4PK↔;⊂hS↔3O(K↔∨Nqβ≠?⊂∧εM}$∞Fzε%=2k
MphP⊃≤&.>≥dε∂πε⊃εJK1Q HN]lCXh!≡&."
%FZf5LBKXQ!⊗.vG1PV.lC0hPQ(α∧F↑,Rεv}tεO~∞Mε*ε=|F*πM↔"ε≡
εfN↑4ππ⊗|NV∨&≥⎇g~ε≡4εf}ltε∂~∞ w∂≡≤-F*r ≡Bπ⊗↑≡VO⊗↑1PW'⎇tεf↑<≥Bεf≤,Vg~¬∂F6␈]lGbε≥lBπfM⎇f/b∃Dε∂~∞|VfB≡2ε
Iv≡∞D
f∂⊗≤≤&f*¬∂FOb∃aPPh(πE⊗.N\6*πMRπ≡>,↔π~∞↑6Nvt∞FF*∞∞&}'\>FN}n4π.wM≥Bεvt
V␈⊗T∞'.f↑4ε∂π
O∀βsQQ&f}}λα↑⊗\⎇⊗r∧πIV∞↑T∞7/⊗T∞FF*XNNZ9<d∂_x=>≤KE∞≤
le≠?λ_.,(→→,m;Y0∩⊂∨→FEαts⊂∀≥7uL8≥9∃\∨≠p|:≠uyTOJ:2|:ε8:9∃M∨6p|ε:2|:≤TP:4→wεE∧Bw{2y→67{T z7ur[∪T]FB∧ts⊂≤8∨67F8:9⊂≥42w→wz7P→7w2]CE∧`≡∪pz1tλ0P89≠r:qz~ww↔↔ ∨≥FB∧tw1\∀88∀NP=tcλ77P6Xz1t⊂≥pyP3≠zw2ελ;rP6[{2P:≠P:42H94st≥?εE∧Y5zw2∞2w2
CE27w→]εEεB ⊂$sλ;rP3Yz⊂:7H:42P→w2⊂7Y⊂:42H9qy0\⊂64y]⊗⊂1p]2swy≡P1wb→yP2x]pv⊂ 4o reRo are
stored, qifc@∀AuKe<AI←KLA]Oh↓[CiG ACMsQQS]Nαβ'9βλ∧ππ⊗|NV∨&≥ybpH!Q$βdβ8:lT≤⎇4LT≥~→$;]≤M≤<kKEh∂K#!-9H∪
s≤≥≤GN≤
ld∞~→0↔βE begif Repeat if Hi_ptr≤scrap_ptr theN
∩∪ KOS\↓S]Gd!YV #π#@∩KαpaQ@"0l≡⊗{≠c∞≥≤W+|x9⊗m
&≤≥∞.YP*≤αafs[lk⊂pTpX/IIC]g7!R1aiI:w↑4∀∩βS9GdQQ$1aid$v~∀∩%K]Hv4∀∪k]QSX@Q!R1aiH⎇gGe¬`1aiHR6@#d¬qGπN#Wπα65∪Xh!≤f␈∩
≠vfyα≤≥∞∃XP*≠P88∃LP27P_pz-tWoX≥FB∧rw2βE
@ If \.{WEAVE} IpεAEK%]NAeU\AS\↓IKEk≥KS@;8∧εn}LUBπ&Tππ⊗|NV∨&≥⎇bεW]\&/↔4λ⊗v Q(7/↔,]g"π>L⊗≡Z8↔&.⎇z&N<h∃m≥≠λ⊂LT≤≤Z-n→9⊂≠zz⊂ 7hef |tracIng| @%`
βO-!βsS↔+↔qaQ hT∧π⊃mMhπ↔π⊂∨_
debeG@!tracifg~boolEan3 [caf Be us@∃HAi↑↓cQ←n↓aCe@≤¬⊗v:LW&∞α;⊂→←∧¬∃OUEKH~(~∃AQQJAyAaP∨∪bβCK∨≤∧V'<Y(
≡h_p⊂[4∧ed↓S\AI∃EcOO%]NA[=IJAUβ+OQβ∞3S↔I∧πG⊗.NXλl←λ≠tAQ←_|.\<z∨πP4z9H80q0[pz2iλ4yP*~2P7:[q2y o`Ai!JAae=IcGi%←\Ai!ChAQ¬bAUkMh~+⊗+↔9β∂βC3'.!0$!Q$παLV↔.t
π⊗↑<X ∞↑Y(≤∞-y
⊂∧≥LY:,@t:1~z9T]H=yt7]yP1j\92w:λ1pr2Ywy4b\β}¬
Var k~1..max_scraps;↓wSMI∃pAS]Q↑AiG¬iyl~)EKOS8ASLAQ`π∂Ls∃βSF+84(N∪↔∨'rβCK'w c+E
cSαβ `≥ TYFEαs3y~oyqi_xλ10\rP:7H67L8≥9⊂27CEDq→stw⊂~s⊂5@=pp then print(≤TNRAVAKYβ≠∃βC⊗K;Q!:↓≥%lhP$'C⊗K;Pc≤Q#∂∂"g.uKX4(∧L+;⊃lhP''→εC$cC'⊂sO∂⊗@cC'⊃βS#.qβCKNsQ!≥rq9≥¬Xβo'≠&K∂πS*βS#π ∧εn␈,TεO~=vnNl␈`hP≤]f#XQ,Vv#1Q&?.,\@hPQ(α¬&uefc@∀A←LAMGeCaL\~∧~)βMiKHAGCY1S]NAqieC]MYCiKpXAoJ↓oSIX↓QCmJ↓yaKqP1aid,f9[C`1`∪↔G#O`"≥f H-JF}Y∞∞G%mG∪,∨ε≥≠m≡|ε⊗⊂≤wP4jλ;tv&λ12P8≠yyta≠2P:7H1y2p]2P:hλ:7P*~92rP≥5ur`.
`→SMifAo%iPAkβ↓βS=∧ε6OB∞Mv↑;\h∞⎇=~≠n↑λ_p∀→qutw→P37`2 kve@IH#?8¬b∧⊗\mwε*8λ-Mα4w3CE>29_w9v !te|, wa sHouldhave |p KqP1aidβc7π`G#↔cS≥aβπ; ∧πg≡>,↔↓G∞N#f@8:ε∞≤|X<∞?λεεE≤tp∞cE |translate| mieht Add a new @QKqhA¬]HAB↓]KnAβ≠∂Kπαβ↔≠␈∪∃β'"β∂#↔≤[L4+6{@∩ε}lWε6M}r`!"C"H∞λ→]-l⎇~;md≥≤X-n{_=W]→6∞C≤≠p∀[82y
H=qw`.verts a s@∃ckK]
JA←L↓cGeCAc|4T¬F∞⊗]Dε&}lUF6@⎇;Yπ1"YP⊂\⊂4]⊂U↔6p↑9q`2aps;↓wS@;&+aβ'w#=βS≤Ss@aQ&KS¬eff}lsε↔9F≤m∨Y.`⊂≡tp∞dex into p→EUMMKeqx⊂∀,,V.NβH∀∞|xp→_xλλbasa0⊗A1↑1aiI?a`Zβ `~ε
∪ππ'+}πβXQ(βdNd
G,8z3LUλ≤⊂→~w:⊂ !n indication o@_AgQKIJAoJ↓CeKxv~¬q%KIk
JAiQ∀AgGe¬afL\9|`,hS' ↓Fc<cC'⊃wO∂⊗@c∂≠∃$⊃F≠πRodxcCS∃ho7π&A%βSF+9βS⊗;O3∂#⊗␈S⊗;NodxcCS∃h4+↔dε6*∧¬H6}n-→f*πMRεO.,V'∞=_λML(≤pn0x9P≥40r p¬KKC%]|@Xh#↔; π0hPβ"P∧ 9H⊂~~2P4`.itial sequence o`Agα≠@⊗∂∞4ε&↑↑4εv←DλL\≥8p∩H87P ! single s@
`πA`h#@>Tλλm⎇Xx=]X9→$∞~→(∞NX;\mL=~0↔[9P7`& a`→X↓aKKC%]SMNαβ@≡∨,≡π
B∞8 .<X=\λ_↑!QX[⊂-mh≤p__qryVλ;tz4λ27v ,ar s@%H∂;M¬≠WKK⎇+;∪'v9β@&Tπ'⊗≥n6f∂M_mnh≠p∪λ>6pz~>εE)Xy0p 3,∧⊂∀!Q$α∧¬H6}n-_LT≥~→$
<X 2Y8qt`"le..9t`4hS↔∨L¬bε6β|@⊂≤8/qq\αap_base @Q↑AY↑aaadAα#<4λL∪↔∨'pβ'2∞λβ>x|X.β_X<lT≥~→-a B",,9z3D<≤
∧∧λJ.aQ@∧Db[2≥FEαts⊂1Xz-x8↔↑rpz~⊂:42[ε@
begiN app(" ");
∩∪∃]Hv~(∪Ca`DQa`Rl~∀βS_AGC@%[CBunkπS!¬##↔_hP$'.;'9β∂βA! ⊃%l4PH'↔lC0hPα:1D∞≠zf∞∞≤JmGm8>ε∞Mz|h∞M→;@⊂≠{2y3≠4πw('token')3
efd≠
freeze_text;translate←text_ptr-1;
end
@ @<Id tracing,..@>=
αdebug id tracingthen
begin pRint_nl('Tracing aftep p.',page80$'1X\NYαc';∃S↓1≥i8Id4(LK⊂∩εMx3s+∧
FF.βC"A⊃8Y9m≥H≤⊂→~w:∀',..')8ε~∀∩%IP∨I∧Z␈3?~iUAβ&yβ3?~β∪=β¬∪';QGC∂#J↑∪W≠≠/∩`≡ZT∧7+U,c"A⊃9;Y↓Q@∧rf≤p¬ fOp∧AW>DAi↑A1←FAI<AaeS9hQ`#≤CJo,∧f6/+=2k
YQ∪@1"B1-lβ"Yn\Y9β! ↓HλH∩-m=~8-M>Z3LT≥~→$∞x|X.∞iC"I≤β⊂;rH0y2P→wtw3H:7P 5q`
Ai!JAa←β;↔K≠,¬Bππ-|G.∨M_md≠90m9Z0→[P52y]⊂22k→v7x"Y⊗⊂;rCE2zy]⊂3rjλ:42P≤βcrapq seT p`AαK9βSF)β≠≤.7"π
Hλ,<+λ⊂∪Z{2w_P.( Ta`f.λ8∧ext, A @QCE@3(h# >d
FF*
_M≡~8;∧∞x|X.∞h_sn92y`0ondiNdεAi↑↓9!β'
β⊃8Aβ#?/↔w→βπC∧∧V∂⊗\@λ≤Xπs % i`≤Aβ##∀Q(l\⎇~0↔[⊂7w par`'αK;≥m∧¬w/∩⎇v∞b
mw:ε≤4π&@h~0⊗\4∧emenpλAi!ChAi¬EP∪∃p∧¬ <αP9d_v6⊂"≠P:44\FA1<H4rx&→vrw:~w3P ! subroutiNe called \PASCAL_parq`xAβ##πQ∧¬↔4_;X-My{u.P:7P≥42FE∨( iaPfλ<9→s>⊂)≠zz4g→P:y`%d du@IS]NAAQCgJ↓←]J\4∀∩*d¬⊗@<(∨∀λ~pp3β∂≤Y1OEλ≥~T∨∀⊂*8p3ε∞<X `%| proceduRe stapps With The c@UeeK]PAeCYUJ~¬←_Ay]Kah1G←αsSK?eaβπ≠ ∧εO"∞Z6/~∞Mε*ε|λW,=~0↔[⊂>72↑8λλcOntroL←cet_next| repEatedly
αto read XPASAAL\ textunti@0AK@;≤¬w.wLZ&Nvtλ
(≠Y/∞α⊂0.≥⊃P7`2 `\.\{', @=` βWw#'04Uc;↔c!C∂?;'∪?0W4¬w-8=∨¬D∃~→$∞x|X.∞h_sn92y`0ondiNdεAi↑↓oQC@ ∧εO"∞,V∞≤h⊂.!"P⊂\82w2→p⊂4`.th∞Ai!JAiG¬ixAC9HAyIIC]gx↓CeeCebPAC9HAyGα≠@⊗∂β∞π'↔Dλ
.P0r;_w1r`$.
∀~)βEiKHAgiK⊃sS@;8∧πe∧~84aα≤⊂..y?∧∞y(∃m≥≠λ∪
⎇zh_.D≥~→$∞⎇8@⊗\97qbY8y2P∨0x8_wvvr[:>εE≥40z it uses iN one of iTpεAEe¬]GQKL\~∧~)↓`Aq KGY¬aCiS=\A←L↓iQJAqCa`1
←[[KαsSqβπ∪?∂↔'+K⊗↓pπ0hW∞-v≡.NXLT∀⊂4h_3ε≤≡\y.d∂x|Y,≡→<h∞≤|X<∞∀→\[mT↔∀⊂*8p3↔∧∞≠zy-n⎇C"ML8Y3∧∞Y<um≡_z⊗λ2|4j∞β
vAr j:0..lone_be@_1gSU∀p
βOL¬f&/∧ ⊗w&tλ∂.9YP∩\>;εE⊂⊂x≥ .ame_poiftep; {identidier↓IKgSα;;πS⎇∪p⊂HαXY,@tp∞ Whide next_control<fOp¬P↔π ∧ε&xQ!⊗⊗.⎇≥b∧βH≡πε.l@λ∞M→(∀l>X<λ≡≤≤[n∞Z8=T≥≠h∂MY>≥β{{]∞
βv> ∂≥FE∧[2|:_ww:9≠v/sr]72l≥≥FE∧Zq⊂∀7→|:1[w:97[≤¬"l")≠ ⊃]∃q` #≤{;SK|aum⊂IβS#,¬bπ⊗↑NWεs1Q N.βY≥CE2|4]≥2w2∞FEεE⊂⊂*42H6pqi≠yP22Y4s2`$ here are help@→kXAC EeKm%CiS←9bAM←β⊃βS#*β?C↔⊗S'?w→β+↔,∧F. Q(
m9H⊃l]Y<X.M9Y`⊂≥42P9Xy0x)K⊂ P9Xy0x⊂≠q⊂1`]2swi≡P∩1Rλ;t7`3e translation has three
tkkeNq $t↓1$ _@⊃hαdH0@AhαLHASF↓KCMKβ∪πS↔ ∧ε↔J∂J6≠∨D@
∞@,**∞@,J*∞@,j)¬D→=_eaαEεE⊂2⊂9X
⊃T↑↑Zw1y∧≤qy0xε8:9)9 catYscrap_ptr]←#; transYscrap_ptr]←teXt_ptr;
fpeezE_pext;
End
@d s1λ#)5=app(#);s0
@d s2(#)==app(#);s1
@d S3(#)==app(#);s2
@dq0 #)==app(#);s3
@@⊂AgFhβiw↔>K9βM h*β⊃¬≠
Mun∪↔∨'rβEL4Tβ⊃βO≠⊃uw.;'9β≠⊂4*β"βG
Eik↔∨NqβMDhRβ⊃β≡→A!
Kiw↔>K9β'v≠I#O∨∪π@cπ#I%mε≠πRo≡≠Cπ@GβSJvz→mβS⊗;No≡≠Cπ@GβSJv{↓l4(N+;⊂4Tβ⊃β∂|k7↔≠!CO∂K∂↓!
%kk↔∨NqβπCαA
%mεC@c≤¬vnn]nCXh!≤Vv Q!PTαλπD∂πYf"πMRπ≡>%brtπcPhV≤dαG≡>,↔↓G∞N"[#m\↔AG<>&∂π5∪rG&⎇3ππ'%6cvn∨βπ&@z|j#u≥→>∞C≤≥≤E6∂[8/β≥→6∞Nh(⊂~~2sεEαw{2i→47{D yqy0\∪P]FB92y`7itchhAGC@≤∧RεV←∞AF≡⎇nGε@{λ⊂↔Yα αc@∃h1KYα+7.nCπ∞N⎇c"π≡65α∃B%∃αεJ%∃αεR%∃εn∂M↓∪@1"Y≠n\Y→&M⎇∞H∞≤ljKDJ*⊃≥⊃∀T"o")(math);
string: @8A`@AK]HAα βOS⊗K;≥β≤≠@⊗∂λπcHh$ λd⊗⊃∩","%" ¬0→ RβG
I@∧%b∩∃
f/GC6}wN-vbJ
\↔&B↔1PVN⎇mw⊗*D/B∩g∞,V #≤[s,≥K≡≤L\F≥z-L_x<LE≤≤Y,C≥~0_→{y4j→y_
@⊃↑1]←QQSMNβX4) @∧"b∃4#"π≡4⊂
l>≥ε={]≤M⎇λ*≠n9J.aQHJ(EDW(FD∞xl ∀≠2|:_ww:9≠v⊂T1[4πse)8ε~∧DαQ∪R∞8λfEλWλE∃λX E∃λ\hE∃λY⊃
T6pz~∀X
,": qc3(α,")(opp ∩Pα⊃e %FkπS!KX4) p∧"b∪∧ ∧_Q⊗⊃⊃⊗⊃3 ,"4λXDjDαa∪2%D# 4Kλ@≤λα,"9"8∧AgFDQP≠↔G c∂?w#@⊗@{
*∞tp
p)8ε~)⊂π2'H≤p⊃LT⊃≥@")(seMi)0⊗~(@ i Rβ@≡≠∃λG⊃∀T1[v7w)8ε~*∧εEc$∧πB(π⊂x<l↑h~0↔≥7v3 )ng nonstandard↓CgGSαIβ∂#∂∪π∂S,ε'8∂P∞aQX∧r2[84s )er0∀Ayβaaα+;⊃β∞qβ'∪,¬g&Nm_ .⊂9q`2ap@>l~∃KqA←]K]Pp βO≠→!
@D
%∧Q(@∀J⊃=Q∧J2|8∀NFA12Yβi`≤1
←[KKαsQiβ≤∧3∩B+D"JB( λE∃≠8=
¬,¬FE→w2∧1[vrr`.t: s@dPE8λRPE(α⊃%#7∂#!%@1Q&}∨L≥C@$≤xlE∧Tε⊃)("O"$QgS[@Rv~∃β##'c∞7ε∞<W"π≡4
∧α⊃∀Tλ⊗⊃∀T≠pz4)8ε~∃)∃01giIS]Nt↓p∩παλ]Yλ⊂⊂H,∧TEX\ string @MGeC@∧↓yl4T¬FNvS',8:`≥λ1wvvYw:_scra` !H ?,8 %↔c"P⊃~pπ⊂⊃YαK;∀c↔∪↔π4εH={;9-nαλ9`#p¬C`Q S@≤@hn1rT]CE0∞o_li`≥JaEeKC,p β,∧vNr≡παF-_ cx;Xl]λ∧]@ app( 8DRvαβπCA@∧"α∩↔1P@!8{p⊗[p¬`≥ha`∂∂K∂↓#≤sε≡∞βXp∩[∀X
`@; π0hW∞8 .\α7L9Yvp : pπF`QMK[@%KX4+-x
-gH≤p⊃L∀⊃.⊃
T⊃%⊃
T6pz~∀X
othe@IGCgKβ→βO
α⊂
l>≥ε={]≤M⎇λ∧T6Xz4∀FBαe`≥I
CgKf4⊂λ (αPλ
={9(
mβw9`4andard a`'α≠'%β≤¬ε∂⊗≤8
↑\h⊂⊗X|P40]2P2`.tere@⊂A0⊃o:t,
hX∂D↑(⊂⊗Ypp∞s o`4Tε7&∞βY_.2⊂7`.es ≤AQQKrAα@⊗*8mnβ2y:→p∧ to X )a8AG←αsSK⎇Dπ<αxp∃@∃]GKf↓`∂=β&CπQβLεBεO1Q'ε@||p∀X4∧e @Q↑AWKα+AαqwZP≤,~hW`$→\[mT≤⎇→.∞~;YdY>0↔[2⊂9`4andard a`'α≠'%8hP4*↓βH6∂≡↑4εNwmx∞m8π3@ nh∂]gβ#π;∪∂∪⊃99t↓y`(β"P↔≠zλλe@EkC@1Rβ@≡≠%λKDJ*⊃∩Q∀T6Xz4∀]CE0e@M`c?α#ε/∂\≥C@$≤xlE∧Tε⊃)("L"$QP↔παMαKXQ( n2pp∀ep∧1←@⊃C↔GW∞a`∩π<6"B∃βλ@∀J⊃#Q)(hC@&A%l4T∧W∂.α8 !le`≥Gα(cO'>q`∩π<6"B∃βλ@∀J⊃)Q)(hC@&A%l4T∧⊗v!∞8
,@w_
@MFdPEp@ %!∃9∩J
\↔&B↔1PF@|B≤m≤{JH∞qY∀"\")( ( %FkπS!
@ 9¬aaK]⊂ABAgQ`'≠8∧π<|X<λπM#"L,9z3D<≤
∧λJ.d<≤
∧%HJ.d<≤
∧∂hJ.d
Uz1βX<\nGc"P≠Z4r2P~α8 SHaYP∨
∧#<4(L∪↔∨'pβ∂πO*βW≠4∧W+zW
|A"B$⊂⊃⊗⊃↔⊃⊗⊃# ,"%","$"0@
`2%D":∩D,ααb-0"b↔d ∧
⊃⊗⊃ ⊃⊗⊃λα,
lef@P1Ce@⊗{]!βL¬f -9Z0~≡L9tc[⊗⊂27]w0y≤4πw, circ@1J1iSαk↔MDλM}ε→0_]pr⊗εB∧@r`0_ar`%=nP∪∨α,V∂&↑#ε␈⊃X.\9⊂⊗→yyL7\α_equal: @ KOS\αβπCA@∩q %Xh $∧L∧Vv#1Q J∀λ∧#@$~9H.9YQ.-u∃@1]="@@ ∧AiQ∃\AS]
` #)Hh $π,¬G<αP2`2p∧1ae%]`@N∧A ←Kα∪3∃α∧↓βO#|εVf",Rπ<y0∩λ4w⊂ 3trings');
@&Doubde {\at} shoUld be qseD...@>
↓`%%KQh1¬ee←nhAI↑19←iQS9Jv~∀%←iQKIGCgKβ→β'→ε∪W≠/∩g*Ub⊃↓ β&C↔8∀PH'↔Kα#ππ⊗≥nBB~∀
FFO4λ6F∂,≤7&/$
6F␈]HFr:}@ε⊗*∞↑6."
→bπ∨N-⊗v?4u⊂hT¬jFFO46F∂,≤7&/$λm
⎇;→
d⎇λ_LT≥<y,EKKPπa"B9-l_x<l↑npaQB8<∞β≥≠ze]9YL↑VzW%↔h~;L>J~J'1"B9-l∞c"N<l*λOdJ*≤m≥<
.aQY;Y↓QC"P∧λ∂⊂<∞;Y∀↔∃⊃+λ≤⎇∞
;Yh∞≤|X<λπO#"L,9z;D<≤
∧+λJ.d<≤
∧-λJ.d<≤
∧,HJ.d<≤
∧-hJ.d<≤
∧/λJ.aQX<≤¬∧↑hJ'1"Y[n∧~Wz,C→Z<N>λ≥≠d
9ε≠
|k,(Mh_<∞β≥≠ze]9YL↑VzW%↔c"\l6*λ←D%*≤z-↑
.c!,;Yβ!!"Pλλπ⊂<≤]Yλ_-d~9→-n~9Z,↑H≤xn,<⊂∂GQ"XY,⎇;H≤⎇9ε≠
⎇z⎇<¬
[|[,≥
.c!,x<y$
;~vn(≠yAQ[[|M\;∞H∞<l*~,C→[_,u|
*∞=;<
'4≡{[nD_(≤L↑y<]L\λ≥{n,∨C"L≡\X>#
~:y'$≤xl%∞Y<fm_9jn¬*_;∞
_*.d∂w ↑l≡\X>/eλ↔ O<Z;→/eλ↔ O>y=∨Oa"X{mn⎇ε≠
≥y.H∞<lj→M}Xy*%X8zn↑
*≤L↑f→[≤j|
%
;]≤Mu.h≡kD↑x{mn⎇∨K∧ ↑{≤Y;∨ED↔ ↑nO<→?Oa"Y~.c≠~:lWH≤xf5≠8=
β_Z;E∃≤Y<c[_9e>
*λOdJ*≠,≡~
.d∂w ↑lM=←K∧ ↑{-|∨←C!,≠f≠
≥y.H∞<l*≤L↑f→[≤j|
%
{99l∃.h≡kD↑y≠oeλ↔ O=y←K∧ ↑⎇
;←←AQY[|C
~:y'$≤xlE[|XlU*≤Y.3→[_,u|
*≥≤~_%↔h≡w∧oy[|Oeλ↔ O>z~;←Kλ↔∧o⎇z=
∂←C"L⎇⎇≠f
M:y.D∞xl*∞,<f→ML9j|¬∃~;]∞-j.h∂; ↑ym}≠␈K∧ ↑|≤zy9∂oC"[M≥ε≠~-<.H≤l6*≤Y.3→[_,u|
*∞=;<
'4≡w O=Z;∨Oa"]≠c
~:y'$≤xle
8=~β∞Y;
%∞Y<fm_9jn¬*λ←D%*≠8.M
.h∂; ↑y
}{]≠oeλ↔ O>≠␈←AQP≥↔εH∂P∂λ<<y<d∞~_=∧y;Y.,=→(
]|Y(∞M_;H
⎇Y(≤l>X<⊂πh∞c"M}~→<L<<y<dY9z-d≠Y>∞C_{{NN[{↔m≥~v|U8z_.#≠~:lWh→{nMh≤Y.>z=_mπc"B,]Yλ≡kD↑x;LOKλ↔∧oz;←ED↔ ↑mm⎇∨K∧ ↑{n/←C"L]Y_x.<<nc!,;Yβ!!"Pλλπ⊂x<l↑h≥~≡λ→y-l<X=T≠;|LT≥~_-d≠{Y$∞x|X.λ∂O#!,Y9z-c≠~:lWH_Y,⎇;H≤l6j→Sn,y**∞,<f→ML9j|¬∃_x;L<;
*,9z;Mm;Yb'4≤xl¬
;]≤Mu.c"A≤;Y∞d∂w ↑l,9z;OoC"Pl≡y&≠
≥y.H,9z;D∞xl
<<y>%↔h≤xf%→[|L<**≤L↑f→[≤j|
%;≤~∃.c"A≤;Y∞d∂w ↑l<<y?Oa"Y;∞<&≠~-<.H_L\z;Hλπ⊂<≤]Yλ∨∞L<[:-l=≠|OD~9H
m⎇λ_-NY89∂∀≤≤Y.<;]⊂πgc"B.<lj→M}Xy*%X8zn↑
*≤L↑f→S≤j|
%;≤r,U.c"A≤9Y∞d∂w Vl]≤y?Oa"Y;LC≠~:lWH_Y,⎇;H⊂πH<≤→-lλ∨≥↑[+KEh∂Nc!!<xlE[|XlU*≤Y.3→[⊂,u|
*=≠|y%↔c"B,]Y∞h∂; ↑y-l∨←C!-9F≠
≥y.H,9z;D∞xl
={Y
'4≤xlE[|XlU*≤Y.3→[⊂,u|
*≥≤~_%↔c"B,]Y∞`∂; ↑z,o←C"MM{|ε
M8y.DY9z-d≤xle[|XlU*λW∧%*λH$%*_;∞
_*.aQB<xf∃≤Y<c[_9e>
*≠m\αspTNFE∧r[2≥P=W∪=|1[0zyb←?εE(≤7qL6~ur]⊂_2stwλ9qZ(fkrce)(backup)(res_flag+p)(cancel)(proc);
sc3(i@9IK]h$PE8DαI! ↓∩I#';'∪=%LhP'↔≠!Yβnq7[∪W≠≥#'?;raαq≠←βK?∂,#WK↔raαq≠←βK?∨⊗7{xhSK↔∂␈∪⊂c3N[∃iβ⊗+↔'→π≠
E#⊗+Lc≠d≥/AJCK↔∂⎇∪⊂c#,⊃%mπ≠
A#L¬g'⊗u↔0hP≤]f#Z∂;B7←,\6␈⊗Oo`hW,↑ε.∂C
FN↑U$ε⊗.⎇≥bπ≡6@
m|Xy%∃~;Y]]
*∞,<f→ML9j|¬∃_x;L<;
*,9z;Mm;Y`∀NFE∧yXX∀4`.tro);
↓end; {\&{repeat}}
until_lIka2 Begin @<ApPend |term...@>≠
cc3(fo@IGJRQ CGWk@RQeKL1MYC≤W`RQ
Y←gJ$rAgF@QGYCUgJRv4∀∪K]⊂vAg8→wk]i%Y⎇|~)mCd11SWJt↓EKOS8AgFhαC≠/K≡)%#∞≠/WAJCK↔LF33π≥←↓%#∂∞s∂↔1JC[πHFC↔π⊃KYβO
αC';S⊗y%l4PK↔;⊃Zβnq≠←3πK{ph(4
αα' βλβ∂?7n+;Qβ␈⊃βO↔nK∂?3}qβπCε+πKMε∪↔≠?⊗)βS#*βK↔O,ε'6.D∞v␈⊗N4¬b↔<]f'rDB7↑]J6/rAQ&␈∩Dg←.nM⊗grD∞FF*∂N6.n∨Dε␈∩∂H
↑Y:3L≡≠|←∧∞x|X.∧≥~_.D~<h≥≤Y0,O(≤∀L↑y;]∧
⎇Y0→≤αideS
the |te@I[S@;∂#?Kq∧ε6∨⊗≡∧ε⊗.Myf =8π3@ th∞Ai!SfAe∃c@↔K4∧V"π⎇xLEA"C!λ∂⊂<∞8π2 |p Ke5S\\\9t`4hS'2¬∞6∨⊗≤∧ε∞∞α9≡ 3cra` aECgJ$8
!8λ.K|xp→_xλλp@Q`
`)>LW-αp nath∂dR⊂~∀$JC∂πR←≠∂Kπαβππ≤W&np¬`≠R$RAiQ∃\AgF@Q`∪↔⊗k';παMw% εEεBα@ A↓G←[[∃]`⊃βLε2εNβXp↔\αpobated @%]a↑Aβ##∃β∧ε&/6α;u.P9q`2ap i@_AaQCPAgGe¬`AS@~β?2∞O↔ε(β"P≡≠vrsp←⊂7p∩|semi| o`$↓y`∪↔⊗k';παMw/λπ⊂∀∃42y`% p Qe∃JAGCQK@∨?α-⊗/~
↔6*8mny8p~]4{2FBαca`)∃H∂?Kβ∀ε≡}LXe@∀P'`4her`/%`∂*∞Mε*ε=x-\αw: is e@9iKeKα!βπM∧∧∩π≡↑λλ.0z2P≤βcrap
`∨L↓isaJ↓y`∪↔⊗k';παMw/λε⊂ !nd i@PA`∨'d¬Bε≡⎇\&NvTλ
m≡~λ⊂⊂H>:2`2mi`≥CQ←exAβ≠∂Kπα∧π&F≤¬β!4p
media`)∃YrAMα{3 &|¬|d
=C!∧¬
The p→CA`1G←αk7.nOBππ-xλl\α:y2H8∧akepεAGCIJA←L↓aP∪π≤¬⊗v:⊂∞≡}]\Vwλ_=∧∞α42P→w2⊂ /d∧AiQ∀~∃Gkβ∪@⊗.β]⊂≤βcrap h S@≤εB`$∃z→-d≤ε0x≤1w`-m`]ipASfAα≠π33,∧Bbπ|Tε∂∨>X,T≥~_.D≥~→$⎇<\L]]β"NMβur`. h S@≤εBεO4λ
(≥≤L≥\{⊂⊂]4p∂n↓←@→β&C∃β∂|¬Vn8π: invo@1mKH\4⊂λ ((πD&.=Hλ.0z4`/n of the @qCa`1
←[@7,¬g'bβK@↔⊂≤ε0~~)ae@?≤∧V'<Y(≡≤ε_m⎇8εr`.t; {append a c@=[[K]PA`∪=∧εFF*∞8λn0x⊂ ,ist`<4⊂↔>K9β≠⊗+↔k∀G#↔cQXh ⊗Nd¬π<|X<β∞≥_ <pπGeC@1EC@≤∧RI@h∧1`!t[sc@IC` #∧εG+αXo@5K@∨¬Ix4(⊃∃ε≡∂K>6∨⊗≤∧ε∞∞α9.@>terminato@HRAiQ∃\AgF@Q`∪↔⊗k';παMw% εE %lse @ K@∨'p∧ε∂π∧∧ ∀≤βcrap_pt`$αI`~πα␈⊂⊃Xz-y`#p¬C`1Aie+x↓Sf~∀$∪p∪?n+⊂≡∂Dλn⊂8`'α+7'q∧¬w$≤ε0∀ep¬P↔≥l↔&@|X∞ >
∪Kαs⊃l4T∧↔παα≥→/∞αλλp@Q` 5E←#?,@h≤βP ;↓ieC]M0∂O∂⊗@cC'∩v␈S,ππ!G∞N#@4→\Y,←Y&≥←≥∞c!8π2εB∧¬∃↓(∂#↔p∧π&FTλλNβ∪P 4hat @%]`∪K|#W∂↔~αrBε≤~ε"q∧εF/GDλ
.P9r`.q`HX↓BAGC1XA←\4⊃y!βM∞ε0G#@⊗∞β\p⊗_z2}⊂≥tpl pete@I\ABAββ?'nLW$≥≠h∞M→(↔
H4∧ ≤ translati@=\A←L4⊂@&≡Bπ→>≥¬@⊂ f pπGeCA`
β↔FKGQβL¬bπεTπf≡≤¬∨∧8π2 |p eC9`∂`"≡',>8 Vλ842`9 are
λ¬`↔l≤f ,8⎇→,D_XP≥44p∪ translati@=\Aae=G@↔O~p4(Q(παεnXL>~;p↔λ( iaPd∧⊂⊃iIC]gYαS∃@$λ
←≥α≤
⎇8π:2\α;
@YCdA`iiKqhaaWS]QKd`-∧π7ε↑≥nG4≥≠h∞M→(∃∞0p∞sLatioN|∧∩*α@≡∂lSε⊗∂<W#αrm\↔AG<8L≡≤n`⊂≡t7v"≤P7q4Yβi`≥C0AmCYUJA←L↓ygGe¬`1ECMKy|~)EKOS8AgCmα(cπ≤∧U␈≡>,↔↓F,≡6+Z∞8λn0x1_yr`∨@MGeC`aaadVβ `_h*λ∃≤≤→Cπε∂,∧p∩Nβ p↔O∃hAiQ∀AgGe¬afAi=O@↔SF+Cx∀T¬⊗ $≠Y0≤≥1w`.trgl≠ ¬xDAQQK@9∧+@↔⊃∞
&NwE d∀⊂εt`3pπS@;8∧α/λH⊂⊂Y8∧erPASCAL teXt ∞@%Xh"↓i]↔>z;Yd∧←λ@↔↔ ⊂≡
λ¬Ca`aiP∨-F≠π;∂,¬BKZ≡π↓F=x-\αp∞tlAwaYα∂*⊂λ∂Lx;Xl]≤ε⊂ 4oken↓CfABαβ⊂⊗NβX;∧__p↔[vrw: Sx∞
pX∂i@⊗;O3∂#∃mβ↑kπ/∃∧εFF*∞N&∞w=Hλ.M8πw?βE9z0]⊂4s⊂≤βcrap_pt`$βs7π`G≠∂Hc∧εG$≥~→-d≠8>β∞x|F∞∞α9/`3cra` aa`∪I\↓`≤αα⎇_.Npλ
`β
∃@≤∧7,<ε≤∞NTπp∪@
`π@F∪πO∃hε∪@4≤xp→_xλλbapπ@⊗␈α8λ.l&_X.p¬0⊗Aβ[@≡∨,≡απ~→(∞qy0x≤βx4UαεN∞`c@',≥g=_8
2Wx≥FE→w2≥FBαλ
*ααS#∃∧πF␈/LXC∞_8 9Y|∧ routine is @Q↑A`2∧
N∞εaCCπKα8 /D_8 P∨4πutep∧1`#⊗+⊂↔`Q(
.P:7P∨( iaPd∧⊂⊃qIK@≠qRα'Qβ≤¬vw∨L∧],>≤h⊂⊂H9rxzYw1rP≠pε s@
`πC~β⊂⊗@|H↔
λ4pp)Kα⊂:2↑8∧
@U]`∪'bβs 6←∞AF≡⎇nG-βv≥for`≠CQx\A&CWMDλ
.D≥_:l↑h_p⊂\αe o@_AK@7⊗+∪∪↔ ∧ε≡}]\Vw≤kC!∧¬
@@@Aae←α≠↔'↑,Rε@⎇=→.80y≤β`
`-∧π6n∞αy0→H9qy0\9P3 2om @9Aβ'πβ18Ai←α[↔;M∧∧⊗v"8m]9;]∞|ε~∃β3πIβ⊗1k↔L∧vG∧∧14]9]P ;brac@∀AP∪↔4∧Vbε≥`λ={;9-nα8∞
@!p,@!q0∃i∃q`⊂@∞λm≥]→0→∞β p↔aα@↔~8;∧{{;,]]_ ␈βE12`'in while @9KqhF≠?;Sα-vc@→[p→≠pz⊂ $o
∀∪αK⊂∩εlX∞∞C_{p↔≥90∂l≠ ¬vDAβ##↔d
∧
≤8→AGε≤∧\lQ ¬∧`%lse @ K@∨'p∧εNH
≥
⎇d∧8*≤α+7>max⊂tohπf@$βuπ&/∞Cππ≤J`→O4¬a`0aiKqiLR6~∀$∩∩Qgα≠@⊗∂β∞π'⊃]\↔AG<8L≡≤j(∞M→;@⊂≠{2y3≠4πw(≥iP∨/,¬b`>x|X.∧βP ;
λ∧∩'∂βA!
b⊃%mβ∂βA!
~⊃%mβ∂βA!β0λE↔c"B!≤X;↔l=|≡&={;9-nα⊂λ "αI`~εlX∞∞C_{p↔≥90∂l← ¬xDv4⊂λ$≤¬z
≥→(⊂⊃_v∨⊂⊂→5FE∧BDq2`'in p←text_pp dvαβ⊂↔⊗\X∞LS≥→0≤≥≥P8oT ia`S:0∩anslate;
{at p QSβ→βC?L¬g"π|TεF∂lTπg≠zf∞∞α9∃@6≤hC@ACS >>8∂∂@∧¬∀∩$∪Ca`!iP∨,F33π≥←↓%mβ∂βA#'vs↔Hc&{ →Fmain
considered had to Be kept in mifdwhen this partof \.{WEAVE} was designed:
(a) There are two modes of outpUt, |outer| mode that translates tokens like
|force| into line-breakiNg control saquEnces, and |inner| mode that ignores
them except that blafkqpaceq take the place of line breaks* (b) The |cancel`84∃S]gQacGi%←\ACAaYSKLAi↑A¬IUCG∃]`Ai=W@↔9ε{@∩πM⎇6.w4
FF∂D↔⊗*
zW'π↑ABε∞l@λ∞M~8c!⎇=≤d8|[n>h≠⊃.l;≤h
|H≤Y,><\p∀[w⊂9d[1rP ∨1pw1Yv:∪@ occuRpεAChαβS#∃ε∪↔∨'vs';≥ε{Aβ↔v 4+|dε
πM⎇6.r
H
.≡λ≠{D
{Y(
L=Y0⊗α (c) The \TEH\ kutput fIle wilhλAE∀AgK[$[eKC⊃CEYJ4∃SLA1S]JA eKCWLACeJ↓S]gKβ∪S↔⊃∧≠C↔⊂βS#∃¬∪↔OWe!β/→∧εF}↑]n2εf≥<Rπf.,V∞←βλ⊂⊂[2⊂>#≠y1r`<, ∀Q⊂RA)Q∀AMC]¬XAYSαs∃βα,V∞Z∞9ε␈.L@λ,(≤u.∞≤Y4n≤9λ≥Yλ⊂~~2y2P≤βhouLd be nk |@→←eGKβ`4+S|[↔9β|εW'π↑@λ
≥8εr`$iate@1rACMβ#↔Iβ¬a0↔]KK∃eE∂`r`! ¬εE⊂⊂*42H4πutput p@I←GKgLA`↔O,ε2ε
∞8
≤zh⊂~≠P5r`%p t`%¬GVA←α1βO#∂!β'M∧∧v}NβY`⊂≠w⊂0zβE24`&d¬KeKαsQββ∧¬F/6]J2::≡2πεTπ&@zy0↔λ44y`4pεAC@⊗)β↔L¬f 4≥xZ.Nα2w out.↓]i@⊗K↔Mβ|¬`hWM
↔4≤⎇_,=h~_.l(≥~∞9(∀≡]_ ]βE
\yski@A9QC]≤AyK]⊂1MCKαc∪qβM→βC#*βsC?YC7.β?λ
Mβqpz~ww⊂ 7here the @Q←WK\αβ3'O ∧ε}H_#!80p∩ticulAp∧AYKβ3↔1β>K3 "XLGc"C!,∧p∪@≤¬6O¬M⊗v:∂H
⎇d∧3 )eld`8↓SfAi!JA`3αMv@3≠90⊗←⊂67`#atio@8AMe←αiβO#L∧6BπMRε@Y>≥∧∞≠zy-aα@
o@8ABAaα@↔~8p~[0y⊂ ,evel wi`→X↓EJAe∃C@⊃lhP4*@Lε0→Zβip@9αCπ;≥∧πFn}LSε -9;⊂∩∨⊂4qP≥42P!]y92g≥⊂6w`$e( e@%iQKdαβs'mlWπb
xD∂≠⎇0~→y>↔εBαλ
*eK@≡↑≤∧↔
mz;Y]]λ∃
(_p~\αrent p
CYβ+↔Mβ|∧bπ~→0→YP8r`!np SI%KfACIJAeKα3↔KK,∧BπεqQ'∂.α9→$\Y0_]p¬`≥i1rP⊃β≤¬rπ~→0≤H0y2P≤βtobed in↓BAgKββπKπ&)βC3∞≠∃β'w≠S↔π ∧ε}H~0↔λ842FB>9z0Xux @¬`KπJqα←∃∧∧6∞fDλ
(_p~\αrent p
CYβ+↔Mβd∧7/⊃XLOλε⊂ <cur1Q←W`1bβπ;⊂hSs∂W⊃C7?∪,πB`!α@
The @≥YP∨∞aβ@6≤-⊗∞⊗β→(∂N⎇_8mL8:9∨⊂:2`,ls how many le@YKYfAα{⊂∩ε|¬0~≤8¬t @¬`∀Q(λn↑\Y0↔≥4∧p∩AαK9βC⊗{⊂∨⊗↑8e@⊂*42H2p∞d↓←@→β|εW'π↑@λ
|x⎇0→≤β when an↓yK@;!CSKπw≠3πSL¬vw`Q(
⎇y;@⊂~yP3 /und, pπ↑Ai!JAgi¬GVASβ→β 6↑h .⊂2vx≥<P2`8c`ahαβ←#↔p∧π>(→P∀\αst @ K@∨'p∧π&FQQ&␈/L∧⊂~]⊂897Xp¬ss.
~∃y)`'αλ .Tε..@>8
4T↓π7|LSjD∧≥⊗v@Y<@⊗⊂⊂p∂`+β#↔I%Xh ∀α≥x
.N≥=ε∞z0p∀e=rec@=`∩↓∞+;⊂@h
,]→∞P→Z|:2`%n_bi@Q`
mβ↑+;∪'v9β &|8λ.M8πw o`Ai=P∂.βH⊂⊗~yz0≡
λ∧∪CQ←V #4¬⊗.fG(m∨≥→0∩[14`4pεvAwA`↔O,¬g"εMxλl≡~;p↔λ8πi`)!S\Ai=P∂.βH⊂⊗~yz0≡
λ∧∪C5←@∪∀F3'.β→≥≠wr2]H=tw:→y892]0z4`/n of control tohπ@↔n8∂AQ@∧r`.d;
λ¬A↓α!β∂W⊃C↔;⊃hπV∨/ ε≤nL=→+L]Y3~p¬`→Hαβo∂W↔∪↔;Q∧∧Vv&≥lrε@≠xp⊂]4p∂n↓S\Ayβ#?,@
\Vo@≤πεE⊂2⊂1`5p∧1i←αYuw∂,ε!G∨L≡F*@]≠p∃F30 e@1HA`/d¬v≡∂M_md≠yH
l>≥⊂≠zz0⊂@UhAi←α[↔9βL¬bπgMx
c
αrv}∨αλ
*∧∧Bε∨↑#εn}LWSn∨↑#π>_9→%@4¬`∨I∀1M@',¬F"παxp~\αrent h@?&)β >dλ
-nα2y8≤αetation}
λ¬↓HAαK;'Pβ∞7&∞=0∂'↑⎇_8mL8:9↔X≥q`5p∧1[←α#⊗␈?,εF/∩∂<FzπM
↔4≥≠h
≥X∧p∀ialij@∀A`∪#*β@∨&≤8
o@∧¬∀~)p∩∨d¬v∩rehβs@ εE λqzy≤βta`)∀p ?↑Nπ/!α≤p~_z2P≠↓wp∪∂,ε!F.βY∨¬D≤ε1`5p∧1i←α[q1βd∧7/⊃
]v&/MaP@(λ8 `4ack 5α@↔⊗≤ε6f∃β↔9`4ack_size@:β←@→β|εW'π↑Cπ>_8
2Nβ p↔Sαs⊂⊗@h→P↔\α no@8[GkeIK]hAαc↔[↔dε7`! ¬ ⊂\z0q`+_pt`$βQA9;≤εF∞≡3∞6OVU0∂↑X∧p∩st unupπ@↔⊃∧¬F}≡≤M⊗}r
_D∞α42P≠zz0 5t state sTack}
λ¬giCQC@7∂@cOS∞≠ →G∞N#@&λπ↔9]0quL≤βize; {lare`ghαβ[πL¬0∩H0yy`5m`HAα∪eβ@L∧p~_quL8≥9>0≡
λp C@'_4(Q(α∧βJ8W"ε≥m↔"rehβs@<⎇_.D≠8>β∞⎇_8mL8:9↔X≥`∃]0z0∪
λ∧⊂∀(∧¬&@h~0↔≤β`e@ ∧π&@zy0↔v4q`4 `Hαβ';SzβS#∃∧¬w/'∞X
¬D≥~→$∂≤≥0→Z62`6elp_Aβ≠WK|εW&NβY#!4yP #alle@⊂p
β'α@λ∞p{2`3 p QJ↓←YHAαc↔[↔bβ?2
x
.N≥=⊂_w2⊂ 'ets @∧AP≠↔8∧ε}vTλ m⎇8π3@.
The p
CYβ+∃β?2βs∂W⊃C7?∪,πBεO4 f␈"8
≥Yy0∩αλ
(hRβAβ∧ε&}≡\NWε*∞λ
.tλλl@∃mK@1D↓πAk&+c@!α≤⊂↔Zw:2`2); {suspe@9IfAi!JAGkβ∪@⊗.n@εf/lX∂@∧¬∃E∃H∂'dλ
,@⊂9z0XuHλp@Q` `/>L⊗≡Yα≤p∀↑2P:4→w⊂7`6erfl@=nPO@≤εF∞≡4p
!QY;⊂→YDq2cZw⊂4`& stachε1aiH|`Ai!K\4PH'OS∞≠ ≥←>L⊗≡Yα≤⊂~≤αX ?≤εW#≤⎇_.L,¬P ;pπCmJ↓yGkdaK]I@b"s &Mx
∞vR0≤@
kd1[=IKy\4⊂λ'≥l7%≤⎇_,=d∧8 4p∧R`,hP'OS∂!β'→∧ε7&∞=3ππ≤O[,∨∧∧9`4ack_ptr then max_stack⊂⊃aβ#@∃@|⎇_,=d∧8 4p∧w@\↓/SπαN4β\¬qP@!8⎇0→ε8∧ok←th∂V1MiCe@%[B`+αh⊂⊃]y2`.dX∂i←αXcOS∂∪RoAXε∃kXQ!⊗.vG1P@,8π2;
~∃Aπ←]YKegKαce "∞Mε*πβ_λ /p_le@YKY`1∧ε&␈/M_LT≤Y0→]4πre@LA`∪#*β∂?;&KS'⎇n2π~_=∧∞βry2H4p∞ @→←eGJ4⊂@>XD∞α42P_zy0∩enpλAYα+[↔Dλ
l≡h_Y,@zp∞.↓)QSF↓`∂W⊗{WS'v)β@>≥H∧
β2{ %p∧AEJ↓GC@3d∧V"π⎇VpHα[⊂→]0quL≤8∧r=⊃|. I@PASfAβ≠=βOL¬Wε@→+λ∞|αP22Xv0q2H4z⊂ !pεABAαkπ∂K{P4(Q(ε"π
z↓F@→=P∩[≤¬0≠E∃H∂'dλF.∨%∞7&∞=3ππ≤J.d⎇<F∞>_9→+}⎇_8mmyz0XuH8*≤αY0⊗~(∪K@; ∧π↑εtλ
<h⊂≠Z2s⊂._zy∧:≠ux @IKCGQ∃`
β@L:W#→;Y∂O@εEεB ⊂"4→P8get_oeTppi@bβ⊂↔8π1`4ion @IKike9`
βSF)β+↔G!βgαLRε↑dλn↑≤≥0~λ:40zλ4yP'≠z⊂0FBαref@∃`↔≠≤∧Rπ&tλλ$∞≠zy-d≠~4nEH∩0~λ92z:\4εs @QQJAm¬Y`↔↔~βs'∪,sS'≠L∧Wπb
xD∂≤Y4c∞βwy2∨∧@
o@HAy[←⊂1UC[∃xASL↓iQJA9KqhAQ←WK\αβ'Mβ&yβ∃∧9β'&+;S'4¬⊗/∩¬∞GOε↑8W"ε≥aPFOL≥FN∨5∃Bε
∞,W≡<YP∩Y⊂;wi→⊂⊂:<\2yr`4 in BoldfAce) @=` β¬∧¬V}']H $
X;9$¬≥~0_→yrzεBαby @∧AG←[AYKpAβ∪?WSNs∃βSFQβ7L∧vG"|Vv/,≡F*ε≤LFO&≥yf∞b
H .l9≤h
|H≠p~]8:z),∧∩*L¬bπ&XlT_x<l↑h∨⊂⊃]y70[p}⊂ 0oifts po @QQJASα#↔;SL∧fN<H⊂↔\α moDule Name In
`#UKgiSα{98Q!PDεDλL↑d≥{n2≡`∪L__P ;p¬Kikβ∪;↔⊃∧∪eβ@L|W!F|¬0~≤8¬t`8↓IP∨I∧ε&/≡↑.f.λ≥{n≤␈C! 2⊂ -o`⊂nama0≠≤d``Aβ[@⊗/L¬0→≠2r⊂ "y p→O∃h1←KQa`↔SβDε -βy⊂ -o`ul@∀AP≠πn+@∨@@εEεBα@p @→k]Gi%←\AO∃h1←@,εGπ=∞P∩Zqt:_4z1]H=y2`4ur`≥f↓iQJA9KqhAQ←WK\αβ?2
x
.N≥=∨AQXε0q→v⊂92\z0y:∞FA3 !p a:@MSqiKα+8cLεG7h≡xn↑\Y3ND~9→-T≤Y0,D→\[mT≤ε0∀ohε1[K5y|4T∧&.≡≥`λ∞2yz0\αp: @]QSIJ↓Gkd⊃Q←V{Gβ+@⊃F]lBε&tλ
}∧∧6 %vel;
λaP∨@&{ →F\YUN∨↑#π&@zw ≥H4s1`2(cur_th∂VRl~∃@'2β∧`,∧rCβα∞Mε.pQ!⊗⊗.⎇≥bε∨↑#εv∞β97l∀≠;q∧
9ε→ML9nc!!8x<lT_(⊃
≡H~0∩ε360sH5sεEαY→⊂ !←res_word≠ {|a≥pes_flag+cur_name|}
3: a←mod_name; s|a=mod_fh CN-Gkd19C[Kyx~∀αhhAEKO%\AakMP1YKYKXAGβ+@c;∞k∃%m∧;?S=¬∪↔OS∂∪Ql4PH'↔l@∞d∂␈_'.Mzf→ML9jxn↑F≠X-\?∨C!!-.H,9z;D∞≥<rβ
α2{"[∀1ziε4εame); cUp_moDe←inner; Goto restart;
e`≥HβYβo@L∪VNvlXC∞≠zfmα0sUXzy7_vr}?βEwj~2y1p\pyP0Wtr2w≥4s4r\⊂=}0Otr3≠0sUq]y70[r}?εB∧rw2_pyriNFE∧r[2≥FE→2q:sH4s⊂*≤αouble_shooting theN debue_heLp; @+ gubed@/
gat_output←a;
end;
@ The real @]←eVA¬gg←G%CiKH↓oSiP↓i←WK8A←kiAkhASLAI←]∀AErAq[CWJa←kiaUix\~))QSf↓ae←G∃IkeJ↓CaaK9IfAC8AyK]⊂1ieC9gYCi%←]xAQ←WK\↓iP≥β&C∃β∂-∪@⊗.nDπ&}<Ybεf≡:B`hαX;LD≥~→-d~=λ∞<→0⊂]2r6<H1pv6≤β p→O∃h1←kQaciX↓C]HA→KKIf↓GQC@⊗∂S↔↔→βS=¬##∃β|εW'π↑APF↔\h L↑H≥0↔≥4r⊂ 2eaching the teNd_tbanslation| q`Mi%]KX\αα'QβM→βC?∨≠'∪*β≠ ?!Q'fn≥<QF@⎇=≤∞↑≤ε⊂ 4o
be calLe` recurs@%mKYr0AgS]
JABAαk?∪Wd∧RεV≥\RεN∨∀εNv=JV&*X,,9→→,D↔∀⊂*8p3↔↓Q]→6∞Gh~≠n|=Y0→⊂:42H22x*~⊂7s⊂≤2qzi≤βi`∨\↓]KmKβ⊃β↔c≤+↔∪M∧{;∃βd+[↔⊃bβG'≠≤∧PhV]x ∞]→(≠L≥9<h<9[[nD_Y(
≥\z0∩→P7s⊂≠wr:`,e names&
A Prkce@⊃keJA
CYYK⊂Ay←kQachEαεN∞cqβ∪|+@~πMRπ≡<≥fvNlp∧∞≤X;N=_9~-⎇Kλ⊂-lβ"Sn↑≤≥5∧
βs⊂.∀ ia`S,⊂:2↑8∧ within`X aD≤AEeC
S@↔Sα5Bε∞l@λ∞M~<h∞∞[xp∩Y8¬re uses
|make_outpqt`8↓iP≥β|εW'π↑@λ∞M→(⊂n↑\Y3ND≥≠rl]H≠⊂∀\βt. ThpfX↓iQJAβ∪↔∂W↔≠'[∃∧≠π30hS?2∂IV∞↑S
w/'∞ZGbε≤:G.∞MK∩ε}<8
.9P;t→w⊂>&XurL7]z8:`4| calls |@=kiakP1!β'
β⊃`0hS←#'d)β ?↑Nπ/'M→f 4≥~→$
X;9$
yH⊂$
8πr:[2WεE⊂Here is \.{SEAVExO@~β7π|ε"ε←↑Nπ/"
⊗v&LZ"`! ¬εE⊂8⊂8 2ocedure mahπB1←UiakhβYβo?-#CGSα4π&FTλW∂.≤hλ-L9]≤d
yH⊂~≠urw9←∧@
lAbed @IKgoSQGPIKβC'Q∪4{W;⊃Xh#Kπ⊂β¬k↔L∧vG↓α_Z.Nnh⊂≥Xzy12[8⊂7j]8:z byte↑
@!b8eight_biTpεvAw9KqhA=kiakβ!βg&+p⊂@ ¬ ⊂Zβ( C,1QS[%ht`\9[Cp1 siKflAwS]⊃SGKf↓S]i↑↓yEsI∀1P↔↔ocp$(∧⊗CS¬aff↑lsε↔9F≤m∨Y*`⊂≡tp∞dex into p→EUIMKeqxλ (αPλ.≡≤Z3L@L22`,im`∪I∃` kπ≤∧6NI8lL,¬P ;d¬SeGβ!βπl@λ
L<⎇⊂_t0p∩acter↓←@→β≤εG-8π3@ be`∪]≤AG←@∧K↔'βC"H∧<x=LS≠≠p⊃K ⊂p∪@¬mJ1YαK7'QS↓0∩vMxL@L10∃@_1gS@T∧S@4≤¬} ,ocp_Aα;⊃βd¬FNnα9∨∧∞α7P "e re@MiP∨K,∧G`!α@
@!pπCmJa[←IJi[←IJlAwmC1k@∃β|∧bπf>XC
αp∂de| be@→←eJAα βO↔∂+↔;∂*β?2.&.∞α|p∨βE12`'in app(end_p eC9cYC@&K?9%X∧π↑∂∞λ -lλ_ ⊂≤β`@;&K;↔LπC!\Y0∩↑2L:2↑8∧; @AkgP11KmKX!iKqhaa`∪Ihε∩KZ↓Q&f@{x⊂¬18Y0∪Zw⊂0oYβ`hF{WSC,εC@1 X 2\βwitch: c@¬`∂*⊂λ
|@εE∧Yw2_tp¬C@;≤cπS'|q`∩π,X
∞↑Xπ⊂≠
λ∧∪@'&+;C'4¬⊗/∩L∧Y.L;w`2d:@,Outpu@PACLAαK∪↔nM⊗ -9<Pπgc"B-]yα≠L≥9*PπI⎇=≤∞↑λ_ ⊂≠wr2`,e name@>+
λ `≠CQP1ES8YSCi 1W`Y5CiP1IKXuq∨kiAβ+Q⬬a3nrfkπS#pβ?C↔⊗S?Jβq`_h!_6∞v<Xπ⊂12sZw⊂92\2pr_osrjε4πutput;
until (a<bacKup!>!B⎇ES≤1MOe
JR`,hP$'∨|εFzπ,Z7>OL9βHh!⊃⊗.vG1P@N-_qF≡≥l6.c$λ&.>≥`π,<→0⊂]⊂0ocYzλλo@UiakhβX4(⊃~Vwε≥DαBF↔HλL≤z⎇<¬⊂λ∧0MHα "))≤εQB⎇ SF #4{@⊗≡U↔0hP⊃_v␈&tλL↑⎇z0~_t≥FEαDrw2∞FA∧`)ndent,h∂ki⊃K]hYα{CAL,⊗≡←↑¬F↔⊗\≥2f6},6*F-_qF6},6+T∧π∪n↑≤≥5∧(_p↔[8∧ro@0X~∧∩%YW←V↓CQKC⊂AS\A
CgJA=H β3Ns∃β⊗+π/MbβC?O≤¬⊗⊗G∀F>␈Mtπ⊗/>⎇↔&≡∂HβsXQ!⊗␈&Z&≡∂<Xd
⎇=
∃(≡{nM→<]m≡y( ∀λ~0→H0s⊂0\qttP_t0p∩acter}
∪K9IGC@≤∧W7c"B,]Y∞c!>~0~∞2s2;
~∃Aβ\AαK∪↔≠&K∪'↔⊂∧ε}H≠⊂∩[3z4 one Doas Not have to be @∃]GY←MK@ASαqβK∞≠↔Md
FG<c"N|αP7`5tput↓A0⊃o;Ee@↔_?Dt_X
`4 `\.{\X 99qwCC9βsp∩hπεEβE ⊂≤Outpu@PAC@9∧¬⊗&.β]~,@4ry ∂≤¬¬
@ K@∨'p∧ε␈/EλKDJ.c!4s⊂ !=ide@9iSMSα+@∩πMVrε|¬0~
⊃("$~∃KYβ≠∃β?,εBB∩d
'P8|A=res_word||∧∩+L∧bε↔≤LQG∨L≡'%↑>XC
β0vrJXh
; siJ1MiCe@%[∂WHβ
f∞nYP
f∀≥~→-aα@
@=kh@#↔KS∀cn+6oβ_
S≤⎇_.8-q`5p∧1]C5K;*R4⊃KY@≤∧Rε@⎇=ε
l8εrT_zy7_vrT]CE2w2βE
@ @<O@Uiakhαβ¬αqp¬b`(∂K#!12st[⊂7r`45("\")("mλRPEBλRPEhα⊃%!@⊃%l4T¬⊗ $_/;,≡~ε_M≥H≥~]H≠p~]→Pλ"b )("i )("n )~∃α+3O∃εK⊂∩ε↔]V∂&β∞&.b∞Mε.r
x
.Fh∧⊃9λ∀T⊃2Hα)("l")¬
Else Out2( ↑DRP `DRv4⊃Wkh AvDRl~∃K]⊂~∀4T↓αS#*β∂WK⊗+;Aβn{∪∃β&{↔Mβv{Qβπ43↔∂Q¬##∃β⊗+#π[L¬w$≠yHE↑uq(~Q?In∀≠⎇5∞∞=λ⊂→≠zz4w→FA2|_px:≥t2w we are oetputding control tokens&
@ 9=kiakPABAG=]ie←0X 9:βqt4+N1β¬s↔∪↔π-π##↔_hP'↔>K9β'2β∂WHFk?∪∃β]w/&↑$π&F]aPPH≤,V>Nd
w/#%λKDJ*_%58x;L<;
hF∧J.c!!":9D/;|∞D≥~→-d≠⎇=¬y=ε
}=≤⊂~]∀P=}≠x:>⊂~yP37[47{rY⊂1<P_P24sZz?εEαDrw2βE elsa i@_AB{←AhAiQ∃\AE?≥Kh1←Uiakh↓wSO]=eJAI%KShA→←YY←]S]NAq←aiyβp4('.s⊂4+.cO∃αβb3??Zβπ#↔∞!β≠?⊂∧π>≤[{L|<⎇λ
M;Y(.Y8:eD∨→{nMβP92\{tz1Z> ∨εBεA ⊂∩pε sEveral kf The toi`]f↓yEeK¬Sp@1∧πF6←,8Wbb∂H&N9α→P↔\αce| occuR in A
ro@\XAa←McSEYdAS@'F+⊃β←M#!βd;-β≥βπ∂↔~↓#@>
_λm∧_<Y$
9{[n9
+↓Q]~→$
α0p∩gest @=]JASβ→βGO,∧Bb∧∀λ
≥Y(⊂N,8:`⊂_v9wP≠qqz`2pεAS\αβS#∃∧¬w/'∞X
∧X;⊂∩K∧@
e@aG@↔C ∧ε∂"∞Mε*πlXO∀→;Y∧
βs⊂ 4he transl@¬iSO\8A)QJ↓mKeR↓H'K≤εBε@~;Y$\Y0⊂ZFA4iH9zx 0ress@∃H@@#Js∃)1∧∧∩εf≥lRε↔,X⊗@4≥~_.D→[p⊗≠4πws `Xλ@;]brfreβq
∃aP@HαP∂ M{z`≥→89∧Y|@⊂≤βt..∞@>0~~)EKOS8AE ?λπ2π≡≡h #
αp∂de←cur_mode;
`→←α{B↓L∧&.>≥`ε
}|ZAF@⎇=≤∞↑∞c"A≥9H
↔8x;L<;
'e,εq4YL1pw_pv∀P≥42w dπ←i↑↓eKgo%iGPV4∀∩βWqGCMGα+3qβ⎇3↔KKN#↔Mβ-3↔Kg&C';∨ph('π2↓!#∧X∧"α∩⊂Aεf.,V∞Zα*'e,π14Yβ_fo@IGJRAβ##↔aQ HN,XvNr
_ D∞x9P∩F4p∂de=outep then
∀∩$∪EKO%\ASL↓←kh⊃Aidl@~βS#↔ph $∧HK' ↓F{WP@.V%↑|ZAGπL+Sj∃∧
A ¬∧DBD@T7]zλλbud[out_ptr4c:`5∃a↓$⊂hP$$⊃⊃∩F@⎇=ε.9V{n↑∧∧8*≤α-2]t@
e H 4(⊃⊃⊂HJ
x
.C_X
`&Xπ←khaaadZβ~uu
b⊃%βSF+84!⊃⊂HH≤⎇w&@h≤Y.{tz1Z≥FE∧BDp∂`+PdPE8λRQD[
C]GK0VD`D$p4(HH''→∧λo↔≠!CSKπw≠3πSL{9βSF+9β≠L¬fO≡β
FNvU1PPH⊃_ -lβ"B!≤8ε9`% if (a≠end_pransladion)∧(cur_mode ;%]UKd$AiQK8AWkh @@DRl~∀α∪≥←i↑AIKgoSQGPv~(∩∪K]⊂v~∀∪%H β¬v⊃βS#,qβ
←λπ2π↑≤dπfT α/λ≥y$
_9P∩H>0↑1∨?αE∧Yw2≥FB2w2εB∧A ⊂∃42P)→vptw~w3P(_y:⊂ /d∧Ay[¬WJ1←UiakipASfAM←[Ko!ChA[=aJAGα{7C3L≠πS↔ ¬b¬>Ybπ≡QQ&␈/Nλ
.D_(⊂⊗[r:v % jame, we may Need @Q↑AK]QKdAi!JAaCI`∂'lpλ≥Yλ∃∞8π9v_z4wgβE97j]4s2`3, siNca the name may contai`≤Aq!β'π¬→8AGα{∪∃β,¬V⊗.LLV"ε≥`¬gε+DhV=yg∨'.X7&N⎇n2r¬M
↔
¬Jλ∃≤≤→KBε≡|LRεO4∞εf∞<XBε∂D∞FF*XLD≠yH∞M→(_,>~=Y!QX∧w8≥z⊂1:Y32y_w2⊂*~2P:9_w9v !tionprgcepπfAkMKfAi!JAK]⊂AWLAβ##∃β∞≠S'[(h+sS}Xc .]←Bε∂,\∩pHαC"Hπ⊂πz`4pqt @∧AS←IUYJA]¬[C\βh4+,;'9β|εW#∩∧+BαJ∧+α%,¬FE~q⊂7:[T<92Yα[cuR_h
C[∃:R;I∃Hλc≠d∧⊗ 4≥~→-d≠y5β∞β0v∀≠8rT<≤2s-q]y70[ph
)-def_flag)
λed`'α)β ?↑@
∧_⊃∀]H=wp∃@Qa`↔Q∧εFF*
]v'∞β→(
n8εq2\α, o@HAuKe<ASLAαKQβ←∂→β@.βY→,@4p∞e@⊃x⊂∀-x
.EλNHE↔h⊂∂ ↑=_λ 5t the p KqPAP∨→∧εFF*
]v'∞β→(
l8εr`∂≥FE /ut2( 8DRPα∩a %Xh#↔lAP@!α@
@ @8@∨@,εGπ=λ⊂~~2P:2↑8∧ ≤\αr↓y@QQ&M}-_
S≤⎇_.8-qj\α_name]0⊗A,1QS[%i0∨β_
S≤⎇_.∞⊗xp~\70vYUXn@;
while kqR1YSαk'Qβ&x4(≤,V.NβH⊂⊃↔q<z2F4¬em[i]; @%]GdQ,Rv~∀%SDADβi∀∧∧ π&F]`λλπα)ut\⊂72l≥⊂1t0\αacter, give e@I` ?$λ
,@⊂77`4 `\.{@@v'@>;
i`ADlAxDAβ##↔dλn↑λ∧1)
∪K1`∂(α8Y,@tp∞ @<Co`!dAaQJ↓9!β'
β⊃8Aβ#↔cQ∧¬⊗wεtλ∂.αs3 %p¬6@#d¬⊗nOE0%∃β↔5.← ∨⊂≠
λ ∪@≤∧↔6)
Hl;{≠p⊃Nβ save_li@5Si?YαK7'QX∧εf@xp∂`,im`∪HαYImβd¬⊗nOKx
E6,¬FEαDq2`&d¬Ke71S[@'%j⎇q⊂π2ε←↑Nπ/!α⊂λ Ta`f≥H∧@
lh∂G|ε6∂6S
F}≠4λ
≥89↔n≤=Y&
M9:0~∞β
α end;
λ∧∪K]⊂~∀4T↓α↓r≡['Aβv+c@"8
≡KK@↔⊂∨_
begi@8ASLA siJ15K[ /]hm
αα⊃βS#,¬`hPα8Y,]8π⊂(≤4w:≠4⊂∪@H$pl@∃H∂πDλλm⎇]≤[mD_{p∩→P4w mode@1JA]C5JtNRl~∃]%YP∪↔>1β∂|¬g'⊗⎇Dε≡}LUbbt∧πC!↓<≤Z-n∧∧76
⊂π<'$p
βC⊗K;@@
_ ¬⎇<F
l8εrTNβ prinpλ@!8πbαh∧]FBα end9
i@9GdQVαI`_h,XLA ¬εE⊂⊂*42H,∧PAS@πβ→8↓iKqhαβ↔;∂d¬w<αr⊂ )n \`! 8AgQ=kYHAαs?Qβ≤¬vw_:0↔λ0.3∪H1t0y_qz2`2pεP⊂4T∧WF≡↑λ
∧∞z9~
≥H≤p~≤αi`≥OLX α←*βC@/Dλλ$↔_∪H0z⊂ 4he f@I←]hAα{⊂∩πMRε↔\h L↑Kλ⊂→[P:40]⊂0wεB2y0∩op∧A[KM`∂π∨*βS#π ∧ε&O>λ∨<h⊂~~2P;t≠v2P "u`
MKβ⊃β@>≥H∧
α7w`+ a l@%i`∪3*β'Q∧ε6.w=_λML+C"JM→(⊂≠_y0 able |@Mie@'v8c∪↔d¬⊗nOLXOD~8 P≡2y7P≠zz0∪@%IJA←α1βOS⊗K;∨Mbβ?S#,ε'>O<TεO Q( .≡8;⊂→H842P→2pi@5SiKdαβS#πα@λ,9x;D∞~→(∞≡≤Z0↔→β be@%]NAGα{C'↔ ¬`hPβ"PπH{xλ,H8∧he \PASCAH\ @QKqhAαK;C=p¬b`(∂H∞FBαjP∨YαK7'QXε∪@4_X
`&d¬Ke7);>E@b⊃`~π>N&NvqF.f≥]↔&/+vβ@1 [⊂↔[x ∃DX2st`. if @,;V #d¬⊗nODλ
8πεEαDq2`'in p@IS]hFs1!≥λεBεN≤
1βS,ππ"ε≥`λ
]y_
`,e name di@⊃\@≥∨ π↔;⊃R9%l4T↓0∃∧~84@λ≥→/∞α⊂∞.9ISI\α;Qβ↔v"↓`0β"B!≡≤Z0↔≥76∀ ↑∪T]H894`.t_id!GkdFsπ7∃KYβCKL¬g"Bw`λ∧u,¬FEαDsw`4o fo@U]Hv~(∩∪K]⊂p4!_λK|↑8
2F4¬em[hπ:fAαK;∂IFY%l4PK'2 ∂$ ⊃ then↓p∩∂|επJε∀λλm⎇]_ 7[⊂1w`$e into the buf@→Ke@ph ⊂N]HlQ8Y1m≥H~0∪λ∀1≡@" "")∨(b0~Dα9∩J∞Mε.pβ"B!⊃8∧s⊂≤z94`.dε1IKαc'7≤LW'αX⊂ 4he`≤AMie@'v8c∪↔d¬⊗nOLXK|@εE∧BDrv 3e if qtri@9Hc∪,¬FNnα9→.≤¬b @QQK@9¬≠SKπv8c∪↔d¬⊗nOLXKv∞c"A⊃8∧s⊂
1
Q>λα)∨(str`∪]≤1IKYαK7'S,ε![αα(⊂~~2p∞
∪E∃H∂'dλ
,@⊂5∨6≠w3D1≥pε_s@%uJZF↓iQK\αβ?[↔⊗33 ?u l.αs3 %p∧@≥↔1P@! ∧D`)ncr(j); bud¬MKemP
`-βx@≥CE end
el@MJAO←β#=β≠|εVv#1Q HN]lC@1 ¬∧`%nd;
d¬P∨Wv!`⊂@ ¬εE⊂⊂ ⊂≤Copp∩Aα β∂?w#@⊗@{λ⊂⊃[p∧e @%]`∪=∧εFF*.V ,Y<Pπgα@
@ K@∨'p∧εNH~OMMng at the
\.{WEB} specifications.
@<PhasE II: Read all the text again and translate iT to \TEX\ fkrm@>=
reset_input9 print_nl(#Writingthe outpuT file,..')8ε~∃[=IkIJaG←k]Q>`v~)eKaK¬hAG←Ar1YS5E↑v~)SL@
↓S]akP1QCFaK]IK⊂AiQK8~∀'⊗+∨'→¬∪↔C↔∂!α↓r'∪π;Od∧↔&*∞Mε*¬E7/↔,]g"ε]|G.fXπcXh!≡Vw&≥Dεv/∞Cε≡}nN&}c↑⊗>)]f#XQ!⊗N2TεNw∞↑AFF≡3ε.vL\Bπ&Ybπ?-≡F)F]lAF↑c∞ε∞>U1PPN]lCXh.Yg&NDλ
-n≥=ε
<f→-l→9εaQ@εE λ*42P≠zz8 5t fiLe will coNtaan the Control sequefcE \.{\\Y} between non-nulL
seCtions of A mgdule, E.g., between the \TEX\ and defination parp fA%HAE←QP∩∃CIJA]←9K[aidXA)Q%`
βC-#@~ε∀λ
≡≥≠⊃$∞z~0~→P9x !ca betp∂KKαqβS#*βCπK'→β←#,¬bπ&X∞$<Y#!∞≤Z3NL9@⊂∩4πwever, @]JAI←8OhAo¬]`A89w993βqβS=∧¬v≡∨↑ λ,=≥y,]H≥≥mt→→0∪~w0 tions
within a @MS]OYα)β'|NVf*d
FF*∞h↔εN≤-F/~∂Hn↑∧∧6 )ne| @=` β@MzW!G∞N'bπ⎇_
Aα@
cHange ib a↓`∂.>M⊗}r
_d
Xπwε[8¬dl, so @QQJAMα{3#?>K;≥βn∂K∨α4επg<≡f)G
z6O&≥ygb8Q(λ-lλ_↔]:=ε∞≡_8q#
9F≠L\9→1∂Dh_<LT_8[T≥≠h
8π26→P:42H9tz:Xz4ww∞∧@
@d sAve_pOpπSiS=\r{g¬mJ1Y%]K?←Uh1YS9JvAg¬mJ1a1CGK?α{WPcπ#@ ((λ ∧9:0~ε9x0qYL4s≠2rr2Y≡Zt`& (save_line≠oet_h S]∀R6Ag¬mJ1a1CGJ7=kh!aQ`RAi!K\
∀%←khd E0DR E2DR4∀∩¬q∂Y↑\8]|z4∃Cg¬mJ1Y%]JY¬gCmJaaQCG∀pO'G#↔↔_F∪'SMZβo≠∨α-V/∩∞h⊗g∞↑4ε}2∂Mw/!
H
-l+≠u.C≤≥≤OOA"C!(λ⊂∂
NX;\mL=→(∞M→(↔¬⎇<\L]]λ⊂⊗[r:v %@>0~~)S]Gd![←Ikαc∀c∂|εVw"↔8α`1"P∂ }=_∃.D≥~→${y→$[|@∞M→(_L\z;[M≥Yh≠lD_(⊂↔→{P6wY:r2`∂≥FE9X{2L8≠ytz4[w≥`↔CE ⊂≤Tpafslate The \TEX\ Part @=H βSF)β∂W↔∪↔;Q∧¬V}']HTβs1Q$βeL,⊗w≡L≡F*πMR¬bα→→,M9Z0~~ww⊂8_y:⊂'Y⊂:42H1zy9→w:⊂ -odulE@>3
@<T`%¬]gYCQJAiQ∀A9!βMπβ→8↓aCeHαβ? β&C∃β∂-∪C↔;"β7?∪,c⊗↓yXh*↓r≡C?]β∨∪?OMπ∪↔≠↔⊗+;∂↔~βS :∞MεO~
]v'.LXβsXQ!PTα ]v'.L↑2ε⊗\⎇⊗vv≥lrπ>≡Mαπ&T¬bw:xT↔r8mn≤[s∧∞y<=,]Xy( ↑pλ∧≥Ih∞≡_<]∧
;H∃
!"P↔]z8:jλ;tz4λ:42P↔*"d.λ1ww:≤4πl SequeNce `\,{\\M}'$ @→←YY←]KHAEdAiQJ↓[←Ik1J~¬]U[EKd8A'S[%YCeYdXAA89w↓UxNA[←⊃kYKf↓YKCH↓iVAi!JAG←9ie←X↓g@↔G,∧Vv≡T¬bw;KDwruaPPh(πD␈/Nλ
.D≥~→${y→%eKP∂GQ YR-m<zε
M;Y.d[≥0→Z12`&der(⊂); {insert a blank Line, it looks nice}
out("X");
af buffep[loC-1]≠"*" then o@UhPE~λR~∃K1cJβE∃KSLA=kh@E8DRfAAeS]h NTNRlAwae%]hAB↓ae←OIKgfAIKa←eQx∩∀∪∃]Hv~)←kh1YCXA[=IkIJaG←k]PRvA←UhdPD8DRPD@ $Q!PTα ≥bπ&T¬e$YBπε≡.Bε↑d∩εN|NVf*D
v*π=→Wεg∀λ6␈π∀λ
(≤sn↑Xy(∞L>≥∧>_y.∞λ≥~≡β"R-l→>]]≤Z,↑h_<LT≠[p~λ1wx4Yr⊂0w→⊂.( Ta`f.λ82|:λ;tz4~w⊂& 0b\ iS transladed.¬
@<Transl@¬iJAi!JA9(8\]\βh4+K/β↔πQ∧¬f/GC6}wN-ve↑=x∂∪∃⊃6π1"Xx.<(≠Y/∞αλ1g[:97fλ7sεEλ>⊃≥⊂_2stgλ4s4`4_stack; output_PASCAL;
end;
"@@": out("@@");
Octal: out2("\" ("O");
TEX_string,xref_roman,xref_wildcard,xpef_typewriter,moduLe_name:
begin loc←loc-29 next_coNtrol←gat_next;{skiP to \.{@@>}}
if nexp⊂cOntrol=PEX_string then
errλprint('! DEX string should be In PASCAL text onlq' 8ε~∃9)0AMieS]≤AgQ←UYHAE∀\\]x~∀βK9Hv~∃ KOS\aG←[[∃]hYK9H1G←5[KMh1iQS\agaCG∀YYS]∀1EeK¬VQES≤1YS]∀1EeK¬VY]↑aYS]JaEeKC,X~∀∪)←S\YAgKkI<1gK[$tAKeH1aeS9hPNB↓3←jA
C\NOPAI↑AQQChA%\A)`AiKqPNRv~)]3←TAGC\≥hAI↑↓iQChαq9:↓ph+?SF+K∂π≤+Mβ∪yC;?SFK;≤4V+;∪∂∂≠↔MlhSW;SNaβ;↔G c∂?w#K/0n3?K7∂ 4(4T↓α←#.qβ←∃ε;↔Qβ&yβS#*β∪?3f{←';:β∂?∪*β←∃βF[∃βfs↔cPF≠?;S⊗{0w≠␈∪7πSbaβπ≠ h+S#*βS?/.qβ7↔n{KeβLε2εNd
↔'~
≥fO&≤≥Bε.↑∞GJπ>L↔&*aQ hT¬JGε∞n=F∂&T
FF*Eε"rehβsHQ)⊗"εl[π!F=yg'⊗⎇CF&.m→fO&≥⎇bπ&XD∂y→1M≥X=~-⎇H≤⊂..α⊂77[⊗rvx≥<␈εEαq2st[⊂2vt]9x !ce_i@_1P≠↔,∧F.#4∞6∂6S∞ε␈≡≡M⊗}s1Q N.βY≥CE;t4[2P72↑8∧⊂c@=]ae←09IKMαK;'SL{9β∪zβoc≠|ε&n∂MDε␈∩∂HF.⊗α;Z.M9{←∂aα@
Begin↓S]ShagiCG,r~∀∪%H β;,ππ!F=xNNY{∂,L9Z0↔~z4wgλ:42`. @<Start @∧ASCGβ∪=β∪,3';π&K?:↓ph '↔dε6*∧πJ7&∂,@λ∀→[p→≠pz⊂ $ebanitign@>;
outeR_pabse; f@%]SgPa!β'π¬_v~∀%K]H~(~∃AQQJAy→S]Sgα@bBε≤~ε3@Dλ∞-βqr`$ure OutpuTpεAiQ∀AieC9gYCI%←\A←α1βC#*β∂WK⊗+;Aβ≤≠@⊗∂∞5@hW∞,V≡∞LXBε↔∀λ
(_p↔[897fλ9rxzYw1rP_,∧&{\\Pp≤N↓C]HA→←YY←]K@AEdAiQJ↓G←]iI←XAg∃ckK]
J~¬ApYw99ACe|N8A∪hA¬Yg↑AIKgi←IKfAi!JAi←-K\AC9HAgGIC`A[∃[←eS∃`
βSzβS#↔Lε"εNm_
≤;β"L]<≥≡$∞⎇_=UA"C!((∨⊃M}Xy7∧∞≠zy-d~<h≡≤→3LL9λ∃
t≥~→$⎇<\L]]λ⊂→Xy0x 3 befOpe transl@¬iS←\4∃aCW∃bAaY¬GJXAβ≠=βSFQβSF)βSK∞sO3π&K?9β>K3 "
mwε@8;≠∂∀→;Y∧∞z=~∧↑wF←H≠nε@
\.{\\7} (the \TEX\ macph∂fA→←dAy→←eGKpACMHαβsπ9C≠ ?,8WbJd
FFO4Bg]KFgbε}!PUBo;Ec?d ↔4≤Y4
L8y0∩λ1<P 4he c@=]GYk⊃S]NApYw99ACe|Aα{@∩ε-∀¬bw;KEMeLλ↔πraQ hT∞∧ππ⊗|8 ,Nαy2P→αi`≥Sβ≠ bB
~εε1Xβo6≥m↔∞F↑4ε
εLX M≥X=~-⎇H≠p→λ0P ≤PASCAL\ part}~∃β3πIββSS↔c!CC/'w#↔I@4λ∞nNX;\mL=~0↔[⊂7s⊂≥42P)Xy0p⊂@Mx⊂∀,,V =8π⊂ /ut2( 8DRPα∩A %XβπC@G#?-hn1rT]H0x8_wvvr[8≥P(↔z90w≤v0p∀e8ε~¬CA`Q`WQ←V #4¬F∞h∧]@ ma`↔Ja←kiAβ+Qmβ↑{WSC,εBπ&TεfO>O`hVα9H
}=α≤∞NMHλ@≥42wεB∧ps⊂≠zz∧1≥q(o@Uh1aiHZc*@h∧%b∩∞Mε.pβ"B!≥9H⊂↔]zλλbud¬7←@- cCSα+Sj∪d π&F]`λ
}=α≤∞NU{p~]8:9YαE∧Bpp`'α)β'→∧{WP@.V +{x
jε8:1.OQ≠Q then↓←kh⊃ kE /|εW!G∞N%mz+∀#Hh-zW#"∧+B%*λ\∧∀T⊃0Hα)("r )0⊗Aα3';π≤¬↓F@~;Y'⊃ \p~_z⊂4`& p KqP1aiDβs7π`G#c@!α≤⊂~≤α then max_p `#!CCCJ|εF/GC∞π'∪αc"M≤β⊂:7Zβ_ptr>hC@ACS >3∞π'∩∞Mε.r
\↔AGMx
c∞≥_ /]4πk_ptr0⊗~)S@→β≤∧7,<ε≤∞NLπ6p↑9q`2_ptb↓iQK\αβ7π`G≠∂Hc∧εG+βyq`2ap⊂⊃aQ` l4TεF∂'8π4αxQ(
⎇d∧8 4p¬0≥EX∧π&/∞Cππ≤Wl'P9q`2ap⊂⊃aQ`
`;∧ε`⊂≡pε`∨@⊗;↔Qβ&C∃βS|[↔;M∧;⊃β&C∃βO≤ε&∂π?aPF.l@∞aQ@εE λ ≡)z_y:⊂ ! hCGI↑T\]|p∀∀T∧&.>≥`π<lJ⊃↔⊃∀T"D")(inp e↑$p
β@>MεO~∞⎇⊗f@λ≤∀M|α:q`% `\&@mIKMS9JA`9?p4+lX∞∞C_{p↔≥97v/Ypz∧7→|:≥FB4s⊂7→|:1[w:97[
tr2[:4s )er then e@I`λcC⊗K;Q↓8 α'7π∪?C↔⊂β7π∂⊗yβ∪↔4¬⊗vOM→vr~⊃Q$αt≥↑π⊗␈Z"εn≤:&zεLXfNv≡M⊗}t¬aPV.N8 $∞xl ∀~rλλf@1CF@/L c3?}[WA
mwε@8;
%∃≠8=
¬,c"Ml>≥ε={]≤M⎇↔yy.C≠Y6∞Gc"Q-lβ"C!λλ⊂∂
>_<]∧(→Sn
8=βEeP∂@≡CE12sZw⊂9aL∀⊃.⊃
T⊃#⊃
T4w:≤4π); {this will produce `\"{fOphCh↓xO|~)]KqhaG←]iI←Y?O∃h1]Kahv~∃%HA]Kah1G←9ie←XuSIK]QSMCKHAiQK8~∀'⊗+↔'→π≠
E#N c≠∪∞9/'⊂Fc??//↓#;}-V∞b∃∃εn∂M¬∪Hh!≥f/GC6}wN-ve↑|ZAFV←∞CXh!≥⊗"εl←π!F=yg'⊗⎇GV/∂]_
L≥→;XlS≤z9md≥~→-a"B",,9z;D∞xlB∧+λJ*∧*hJ*
\=~
'P9wj]8:z⊂_w⊂2h]t{0v→w1rP≤tsw?βE∧Dw→|:1[w:97[,πget_jext;
if nexp⊂⊃G=]ie←0{SIK9iSMS∃` βSF+84(HH'↔>K9βO≠ #'⊂F33π≥↑K⊂c3}{'WAFs?K7∞a%%#nS!%Xh($$O≠
A#≡+7%%Zβo';≡+CAβ∞qβ';6K@≡N-HRπ≡]]⊗≡}M⎇g`H!⊃⊂Nv←∞AF≡⎇nGε@{↔yl↑∧≠Y/∞α≥FEαD@rg→≥FE∧Brp∞dl~∀'.s⊃l4TK⊃βO∨∪π@Cπ#@⊃[T
FF.dW.F≤∀M≥]
∪HP mpropeR fgrmat dedini@QS←\N$p4*αr'7C⊗{C↔I∧∧f␈⊗\≡Bε&\h
-m=~3mh∂C"L]Yβ"AQPλ⊃M≥X;∪∂∃α⊂;t→w⊂:4→P.*"V.⊂0w→⊂22c~w4z4[w⊂80\89P4_{2P1→rw⊂*≤αeated, we hav@∀~∃y]∃q` #≤{;SK}`w↔>K8cC∂≠∂π3bqα←∃π;'31∧kπ/∃π##∃β>c?πbβ[πKN3∃πcS#'→C7?∪,c↔p4Tεε}NnDπ&Z∞Mε*ε>Z'ε.nDεn}NYF*εl≥V*b
_bεOD ε∂~∀εv∞\U`hPβ"PπH{≠xEeKP∂GXλ=~
≡f≠;lN8ε2]≠0vrL≤7tw:→y→P=]42P1]y92w≥⊂6wr≥v2P7_vrV⊂≠y⊂="\5{εEβE ⊂ ∂*90w≤v0z2H:42P↔(∪↔π⊂∨_
thic_moduLe←0;
if next_control≤module_name Thef
begin emit_space_iF_jeeDed; Init_stack;
∪S_A]KqP1G←]QeP∨1n∪↔∨'qCCπO≤1βSF+9β;/CPc∂|sSK?e{∨↔PFs↔cPhP'↔∪≤('↔>K9βSFKLc7}#W3⊗}≠WHcn{∪W∪+X4(∧L↓r∂#.≠%βSFQβqoaβ?I¬auwqε3?33␈;@~πM
↔
ε]xG.fT
f∞nUDε∞vAQ HH≤]VO"∞Mε*π<:&∂π4∞Fzπ>L↔↔"∞Mε*ε]xG.fTF.6≥m↔&N⎇hβsXQ!⊂N.lC0hP≤¬z
≥→(≠L←≥ε_m⎇]≤[mC≠;y∞]→&≠L≥9(→
q"B",,9z;D
⎇=→.β≤_<N≤,c"A⊃r the module name')
@.You neEd an = sign...@>
else next_control←get_next;
af out_ptr>1 then
if (kut_buf[out_ptr]="Y")∧(out_buf[out_ptr-1]="\") then
begin apP(backup); {the module name will be fhush left}
end;
sc1(mod_flag+this_module)(mod_scrap);
cur_xref←xref[this_module];
if num(cur_xref)≠module_count+def_flac then¬
begin sc3(math_rel)("+")("}")(math)9 smodule name is multiply defined}
this_module←0; {so we won't give cross-reference info here}
end;
sc2("\")("S")(math)9 {oUtput an equivalence sign}
sc1(force)(semi); {this forces a line break unless `\.{@@+}' follows}
@ @<Emit the scrap...@>=
if next_control<module_name then
begin err_print('! You can''t do that in PASCAL text');
@.You can't↓I↑Ai!Ch\\9|~∀%]KqhaG←]iI←Y?O∃h1]Kahv~∀%K]H~)KYgJ↓SLA]∃qh #≤{;SK}aw7?'+3∀cv7∃β&C↔84PK↔∨NqβO
λ¬εn}Cff∞u<7/⊃
]v'.LU∩FN|Cπ≡∨,≡αKZ
lWG!9vw'-⎇E}>↑Cεv/∞G0hP≤]f h!Q$α∧>-w∨~∞,V6/,]f≡/4∞&.f≡M⊗v:∞Mrε
l⊗n∞D
V}']HRε∂,Tε>OlYbε∞nLWαπMRεn|NVf(Q(Vv'5aPPh(πE≡F}tε∨⊗|>2rrhπchh-≤bπ&
~1Fnβy≥-L-Lλ∞M→;C!!8Y9m≥H_p~\892Y-|6$[5T1z\8λref)3 {bypass current moduLe number}
if num(cur_xref)≥def_flac then¬
begin fo@=i]Oi∀QIKLaMQCN$p
βO¬a;nO,)βπ3≡y199?sx$(HK∂WHGCK↔~␈C3';X¬ε∨/#∂π⊗.e↔2π←M
↔
π⎇→Fbε,Tπ&FTλfO↔>@πε.l↑&.v<QPPH⊃~Fzπ↑8 .P7s⊂≥44yP≠wr2`,e}~∀$∪K@; π0hPα:1D⎇<F∂∞Y9Ff∧≥~→-d→[p↔]50∂de(0!; {`\.{Thic code is uSed ≤\8O⎇|~(∪K@; h( ((∧¬&FT∂F&}}Mf␈&←Dππ⊗|8 ,N<Y(]=Y0→H1y7i\β re@→KeK]
JAS]→←e@7∂#'?9∧/W h+'WdεFOεO∀ε&.m→f.α
]v'.β→(
l8εriH∀4s⊂~z9P(_y0vr]2y⊂ )pεA`3&+⊂c≠d∧⊗/Bα+λ
}H_8M}=β"NM→(≥.<<h∪l@⊂0P -odul@∀A]C[∀@QSL↓SifAACeC[∃iKdAαK@~παY4Mu+H∩.D_<p→]vryP≥40rεB>1z`2_xreF| poInps @Q↑AiQ∀AMCeMhAGe=cf@7⊗+≠↔K,s∂¬β,sSKe∧{⊂∩ε≥nF/⊗↑:C@4~≠p≠Y{2yεβE:42\p¬ e@9ieSKLACeJ↓S\Ai!JAoe=]NA←β∪∪↔IbβG=βM!β'π↑+@~πMRεf≥m74≤≠p∀[8⊂:4→FA7`4her @]Cr\AQsaSGα1β?-#CGSα7"ε¬Eo5e@⊂7λ∞≤αqz4[w⊂⊂@01*}'lAA8]m90∩VbβG.>M⊗}w4ε3+Q(λ-lλλ$επ+←AgP0 ≤.{\\A\ sec@QS←]fpX@dβ91βπv!↓YQwq≥(∀Ph"βA¬βC ><X ∞↑Y(⊃M⎇⎇≠[nL*⊂λ,M_9fNt|:2Yw14]9P]@≡wzz8≥z9P&[p:v % croSq(eK→KeK]
Kg`8hS3π,¬Bε&⎇lSHh,hλ.∧≤⊂∧≡+⊂λ.πLCM\>ε≤L\\h
@ {croSs(eK→KeK]
JAa←αK;C↔⊂∧π6∂-_⊗⊗F↑8∂AQXY9m≥H→P∀[4yt≠4s2]H5zz∀λ,∧");
`∪L↓IP∪π8πSαπMVrε|↑BB∃T
(¬y;⊂→YP7p∃T("A"$p4⎇+QQ∧ λ∧∀T⊃9Hα)("e ∧RPE@ %@4λn↑
⊃≥⊃∀T"i")( ↑DRPα∪9 %Xh"↓rL¬g6/.@λ∞M→(∀L\β2y2[1rP ,ist @¬]HA[¬S@∃↓' ⊃βC|¬⊗wα∞MrεOL4ε -<Xp~λ2peMent@>8ε~*βb7WSαλ
.D_;⊂⊗λ842P≠wr0∃@1JA]k5EKeF↓←\Ai!JAeKα3↔K↔v≠∃β3Lε7$βdεc!
βzz(".");
end9
@ The his@PASMm∃`O'|¬bε∞β→{n4z46H1pw be though↓←@→β∂→β'≠≤+@↔~;Yd8π:9~p¬s @=]a↑~)BAYS9S@↔⊃∧ε7&∞=0∧∞z9~∧∧≤)⊂≤5tw:~w3P 4o the head h∂LAβ##∃β≥#π∂-p∧∧
εM→f@4 _ ∧
<c"N9x<LL9λ⊂.P7:v≠⊂:w6→yyP.≠:rT8
←36 !ex; @QQSfA]←eGf↓EKGCUgBAy9kZP`$zah\4⊂∩*βb';[,ε'"πMRπ⊗\ebrt¬`∂!Q\7lπ∀≤↔pn↑F≡≤L\L¬FE≤2x2`!t r←@aYS]VαCA%M∧πεfNm0
∞¬7xλMH8ox≥H8/q≥CE:w:~v⊂7:[T8∀N→4∧agl~∃qY%]VAGβ+@c@∞,V"Mβx∞d∂z9H∂LY_9g\→9F@4∧ag|, thiq pl@¬]afAQQJAGα{@↔⊗\:Bεf≥m7`hαC"H∧∃~→$Y{∪
}z;Yd{y→$~<u
≥Yy2.t2yP≥492`% ca`'α+E "≤6≡␈,M⊗v:≡2π&Tεw.\,W⊂@ [qD|[|nP92c→y2w1YyP4`3 one, pwo, kr More @QQCLAQo↑\AYCe@'∞∪3∃βeqβC}K;SLhSS :∞Mε*εm~'∂":&␈∨4
&.⊗↑,Vv≡UDε∞vDF∨/#∂π⊗.oDπε}≥nG
πMtπ&FT F∂∨EaP@H(πD␈/Lλ
.D_;∪∧∞~→(
]y→0⊗→P7:vX2y9W↔ ∨=
pO@DrASL↓`7GkH1qeK_AiQK8A←kh EfDRlAwaYβ+Cπ∪βaPVf⎇}∧α↑,\vNr
x
.EλHλE↔h≠u.C≥X;¬
β:v@(p)-f@1C@≥↔1PPN≤dπβn>↑!GG,Xbπ&Ybε>}Mrε&⎇lSXh!~¬␈FM→fJG¬↔2πZN∧Bπε⎇≥g'~∞Mrπ&Tεv/∞@ε∨⊗|:2π⊗\lWε.l8 $∞≠h⊂↔]z8:z∨α α id∧@Q`mGkd1aeKLR|Q`7q1S]VQDRRAi!K\A←β+Q! b⊃%mβ↑s?Qβ&C∃β3∂≠Qβ?2βS@>␈aPPN≤dπβN>Z!GG,\bπ&Ybε←↑FBB∩∧%∩B⊗∀%∩B⊗d%∩B⊗D!∪Jπα⎇~T≠_<nOA"B,]Y∞c!,≠{Y'!αEβ ⊃⊂(~0yrP≥492bH897aYyyt`.e.~∃]JAC@⊗)β;↔∂∪3eβ4K;'OF+⊃¬αbsnN⊗
2↔i∨~β?;3JβK↔7∞K;'≠8∧π&∂=0λ
≡h≥≠d∞|Z5T≠⎇=∧∞~→#!-9Y→/¬λ_9NL<H⊂→[y:4w→P:42H4r2w≥4s4r\9P0w→⊂4w2→|⊂2w≥94ryKεAεE⊂≡(40\pP$dR]⊂'z]8:z≥42P1\5yyV\2s2i→w1rP~w22|⊂∨≡FE_:s3"\-X&oH⊂⊃≥@≡z44yH5rr`0s tfInish_line@pAMe←4AoeSQS]NA→keiQ∃`AaC≥JA[CIWgl~)aeS]P1U@1@:←Kπ&K;≥β&C∃β'v#↔a9rq≥%lhS≠';Lε6AFM≥f+Z
zW#"∧+B∩J∧-∩∩J∧-bαJ∧/α∩K4λfNv≡8
β
~;Y'1"P∂λMh≥~T→Z4N≡λ≤_.>h≠qD∞{|]
≥Yp∂G⊃"P∂
=|]λ≥Yλ≠n↑≤≥5∧∞~→(
≥Y→>λπLc"M}=
∧+λJ*∧,HJ*∧-(J*∧-HJ.dZ;Z.≥∧≠⊂∀[2YFE⊂≡#zj≤:z⊂ !lh the moDule names@>;
Out4( 8DRP FDRP ↑DRPα∪9 %Zβ⊂⊗Nm_mβ≠~3LWc"T∞
9]
∧x≠{Y%dβT]FBε@
@ A leFt-to-pight radix sortifg↓[@↔SF{⊃β'~βWO↔ ¬Bπ≡≥l6*πM
↔~ε\≥6/~
_
∧8<}$∞≠c"L≤~]4nD≥~→${{∪≡~;Yd∞y<=,]Xy(≥Yλ∀m≥Xy(∞M→(∀N]YZ0↔→P:4vYP;tf≠⊂12P_z⊂;w\9zεE≤97p'\8∧ioNal to the th∂iC0AQK]≥iPA←_ACIX↓K]iE%KfAS8AiQJ↓S]IK`X α←*βCGQ∧εFF(Q(
,L;]~,M9<\d
;]≠dε,@⊂→4s32\2w:⊂≠4yz9H10y`%d onthei@HAMCeMhAGQ¬`π∂&+CMaQ"E/∞λW$_x<lT≠→5∞L<Xh≡Y(∀∞↑λ~0↔≥4π the same li@MhAC@~βS#∃∧∧6␈↔,Xn
{Y~-lh≠⊂↔]p¬r
case let`)∃`MDλm≥Xy(∞|αP;p[8∧ to ha`-α)β↓∪α@∂Kα8@)∃1|`2b3oS?β` ∧uβ∀P*~2@
@1SghAα3?Iβ≤¬ε∂⊗≤8
↑H _dD_Y0∪Zw9P !t lo@
CiS←αqβsαXλmp¬t[c]xλAC9HAG←αsS'nX .P:49≠zstεBαp QJ↓yE@3L¬f@?α⊂0y≤αay.
λ∧⊂∀(πD>f| EEPλ∂=
@!bucke@PpπKα,↔M↑≤∧p⊃ZtL1`/deP~Aα{⊂∩εl≥V)G
x
-n→<@≥CE ⊂w→|:∧7_vrU⊂≠0p
e_pointer0⊗Am`∂W∂≤∧W>{x@
|β⊂> #ur_nama| @]QKLAM←eiSαs⊂∨Pβ"P∧≤nX<l=8 1[p∧e 6αβo'lLWBε≥nFzπβ_],=y=∨∂@∧@
@!h:0.∞hash_pπSuJlAwS]⊃KpAS9iVAy!CgQyx~∃C YSMVβSπKK∂JeA→vkπ`@
l⊗n∂9Pλ
|β⊂9`)xp KKαpc≤¬≤g∀≤¬v )nks @%\AiQ∀AEkGα[↔SOph $(∧¬&Z,V =8π⊂*~2P9g\αp S]≤XAoJ↓H∂=β&CC/W>AβπMDπ&FT
ε∂≡∧ FO∨N4ε∞vD
π/"X⊗≡BXNN↑#"M=Z0↔→β a @9←]K[AirAGβ∪?OMo∪↔≠↔⊗+;∂∃∧c'OQ∧K;S=∧εFF*∞λM}→<@⊂_8qur]↔αEεB ≡"7H:42P→αirc@PAaCGβ→99:βqt44{@∩ε9vαπ&tε∪∪:Mrε↔\8
l↑⊗xw+v∞c"Lmβy⊂$↔X⊂:7H40y`(_size-1 do
↓begif Next_name←hash[h];
while next_h
C[∀6`AI<~∀∩∪ KOS\↓Gkd19C[K?9Kqh19C[Jv↓]Kqha]CKK⎇YS]WmGkd19C[K:l~∀α∪%HAqe∃M7GkH1P≠πn*tmAπ##↔8hP$$π⊗+∨'→ε~␈g&(c7↔m[gS)COSπ↔"o∂W⊃C;π↔-jul4PH$''2↓#Q∃Q $⊃F_u
¬∩IβS#.qβ∞␈~Z↓≥QβX4($HK3'vZo∂W⊃C;π↔-j␈W≤¬6/%<;SZε.\6↑∂K<5m}>↑!FV≥\SXh!⊃⊂N.lG0hP⊃≤Vv#1Q N.lAPPh(∧∧'∂-≥f:πMRπ≡}.FNvt∞εF∂<Tπ>*∞=ε∞fD∞W≡*∞Mε*πL<↔'b≥f"πNN&∞w?Dε∂↔,∨↔~εn-vhh+Eg]<X~d/r}4πε∂.9⊗v:≥F>␈-≡FFj≥f"π,]f∞nT∞FF.T∂F&/∞Mπbε≥lBπf\⊗'bd
FF/∀
f␈8Q.&/π,↑6.wDλ∩π∨L≤6Zε|dεN&]nFN6≤↑"εf≡>G~εm}"ε∞MDπ&FT
⊗v&←∧ε.wN-⊗/~∞Mε∂"
↔6(Q-f␈"∂≤W"ε,\Vrε}↑Gπ/Ed¬&FT∞f∂⊗≤≤&f*∂N6␈↔C∞π'↔D∞F.fN4εF␈t
V∞w∀∞7.≡∧
FO∨N4ε∂⊗QQ'π⊗↑<Vw#4∞FF*
M↔∨'4↔⊗*
}W'π↑DεNr∞,W6/.<Rε␈,LW∩αm↔↔∨D∂G≡␈.Cππ'/EBπ&]`hWN=w↔!∞∞G∩k∨EBε/L5bJr
Mε*αM$G&B
M↔∨"∞>F∂↔N4ε∂"∂Mε.∞K=%obDλ⊗v"
≤bπ&Tε6O.:@hRM4Bε≡≡&∞∨L↑'4≠yH≥≠λ→-n≤Z9.∀≠{H∞M~<h
M<⎇λ≡Y(~mm⎇{H∞Mh_Y$<=0-D≥y(
=Y#!/→→<∞M⊗zW']␈C!! P⊃∧→<≥
π/8x.D≡|Y,=_:;.4≠93-}↑(∃
=λ∩.∀≠[h
M{Yy.∧≠Y9,L9λ→M}H≤_..z;Yoa ¬ $ head==tbans {ditto}
@dqort_
~∃Ay'∃hAS]%h\\]|sgi¬hA[C`1g←eP1aie|`wWQCif~(~∃AQQJAI∃gSeK⊂ACYA!CEKi%FA←e⊃KdASLAgaK
SMCK⊂AErAβ##∃βf≠?33∂#↔qβ∂∪CπeZβ;π7,ce 4Uc∂?3fS⊗m¬is∂?dcπS⊗Y
urβ""s∂∪␈#E∩↓qc∂?3fS⊗m ↓Bwqph(4
βb∨3?∩q9:↓pπTα∞=⎇Ff∂LW&∂↔,∨∃[αef∪β¬T
v"ε≡8λm≥&_p↔Y2]P-Xwv60]4ww⊂≠y22y∨εAεE⊂⊂+rP≥yrP:~2P7i→2y⊂∩↔417|≡w:v ,|∧y8]p@y9Q ←qw←β##↔I∧∧6F∂,≤7&/.8∂GK WεπA ¬.↔⊂↑h.a<\cdots<\.Z=T.z<\ ≤`q9GI←Q`
rqsI9⊂4Ph*↓r≡+Qβ'vKQ99t↓yt4T≠?33∂#⊗mBmyAmβ≡{3#π&*mFvz⊃↓ lhS≠ ?$λ5{
∞Mrα∩∧%S
εMtε≡}ML↔&-<53
m|70hVmz"ε≥t αα[∀
Fzα&∧"k
Mrε≡⎇MF∂&[<5m}71PV6} ε≥z'∀"[
∞Mrα∀∀ &∀→≠h={≠⊂.L4xk&⊗↔7xg⊃"Y[n⊂1oQ⊗⊃∃XP≥4π "_"-1 do co@1YCiKmFRfmu?Fv~)G←YY¬iK6D`DZfmu>D0D,bv~∃→←dAG|EtDVβ βS=β IYβ&yβ∂?dcπS⊗↑→5YNm{
l4T∧6}fL≡F-[d¬↔+tFλFaQY[p→λ1oQ0H⊂:7Pλ=⊃⊂ $o coLlate[c(
EBλVlk≠⎇Fv~∃α3?Iβ≥y↓A ¬#=↓ J⊃β∪=∧≠?33∂#⊗o
h⊃A -K
v␈
Xh(4(∧¬π⊗|8V'∂,Tπg.βX],=y=∨∧{y<d∞~≤[n\βt⊂*~2P1:Xurz9H0s2 a` IF↓]←]KαkCC@∀ FO∨L1PG&tλ
(≤u≤zkλ∞↑z;Yd∞~→(={≠⊂.M8π3@ pπ@↔GαX -ly(∀n8z0∪~pr⊂ )n the |co@1YCiKβaβπKα,↔JPβ"U
(≤⊂.0p
e@QKdAi<Ayk] kGWKβ#qβS,c3Mβ&C∃β∂,ε',;]L<≥~∧
8π⊂ 4he buckets, ∃β9rAiO<AgKcUK]GKβ→βC#∂!βπ∨⊗+∃β'p∧π&F]_DX∧q9]⊂→~ZH1t0y_qz2`2 pocitigns are
λregapded↓CfASα#↔;SL∧6∞bβC"AQP→⊂~w34`.itq=Hj`∃βX∧EfNβYP~≡R⊂∀0\897`8imadely)`<4⊂⊂∀(λ∧∞≤[p⊃Yp∧ure q`≥EUGWKhαB↓π⊃T∧VNz≥ε-=_ TNβ p↔KαkCC'-→βW≤¬6/'4λ
≡X∧w3H22x 4h $d⊃xλ (αX !p∧AF@T∧↔∞≡≥∪ε≡}LW2π↑≥lF/B
_NMβP> "ucke@Qy|4T∧&.≡≥`λ@4πr @
>b`@↓IP∨←w#=↓A∧∧Fzε≤dε↔8zy.Kx{p⊗≠0z2mXnjP≡@AaQKαp4(≤,V =8π⊂ )d∧Ag←β∪PcC'⊃{'πββπ∞␈,N2πεXD
β{2`2d¬P∪?8¬α?≡}.FNvtp
'FA∧`)ncr(sort1AidRv4⊂λ'O&Qβ'2βG?K!CC@''mV∂A∞9w.αλλpTp∧AiQ∃\A[C`1g←EP1ai@∃{G?KαCππ≤Npπ`⊂tats@ 7X4λLK⊂∩ε4π _λ842`. dep@QQ7g←β∪PcC'∩v␈'v3';≤O∩ε.β_p∩H22x 4h[so@Ih1aiI;?Hv4⊂λ'Xλ,K|{p→≥8:9↔oq0∃@
P∂/K<6}fL≡F-↑8π7'P10∃@
P∂/K<6}fL≡F-↑8π7+v∞c"A≤αp∞dl~∃K]⊂p4λhR↓α↓βJ6␈↔Dλλ-lλ≠p~]8:z.,.@ <βh4+O|ε'!G∞N%{β4λ
-l]8p∃Yz⊂λ!$p4,¬z
≥→(⊂→[y:_ptr0≤@αβ∪<4PK↔∨L¬bε∨↑#ε&/∞M¬}≡≤¬⊗nwy0∀_pp e:l~∀'L∧bαF-H
-mvz→,≤α-yg\αpλ!aQ`
`-β+ _
MPλc@U`λc∪-βS!wL¬f -8π4`4y) then~∀$∪y∨β+SCW ∧εNvLX∞∧9]≤M≤αyP &or the li@MhACHαβsO?↔ cCS↔b↓hQ!⊗.g<T∧β@∀|⊂⊗~z⊂:4→P64`3t a`(αβsO?α.AGπN/BεNnMrε7↑.FF/$λ
≡⎇_ `∂≥FE∧Yw2εEβE ⊂ ∂)x6 )t the hi`'β!0∩rhπchhαXY,@tp∞ @9Kqh⊃9C[K|¬ε.∞K>6␈↔@ε≤∞NTεP≠
λ¬eKaα+πQβ≤εW#≠X;,[{Y0≤≥70vY]P72↑8∧⊂⊃]¬[@⊗@|-FNvαrxn↑F≠X-\αh
64⊂λ'∂,ε!F↔≤¬→+|↑=→#∞⎇_<NKx⎇0→ε4εame]+cu@H1IKaβ#!l4PK'28
.14`4e=biTe_stapp 7Gβ+@⊃Fl≥V*[≠Pλ∞M→;@⊂_oX⊂ ;wa hit the e`≥Hαβ?2∞Mε*εl≥V/pβ"B,]≤y",,9z0↔λ1oq<]2L6r[mqz`2_byde];
if (c_"Z") ⊃Ft@
¬ JβS#↔p∧ε≥}58α;λ
FBα ∪Kαs⊃l4PK#'vZ`≡∨↑#εv∞β97+|]8p∃Yz-qnNβ b`+α≠ ≡=⊗xk[x⎇0→ε4εame8ε~¬@,¬g&Nβλ⊂↔→|:_name :β↓`_h,LV∨∩∞9w.αλλp@Q` %@4λ
-l]8p∃Yz⊂λc@U`λc∪,επ&Bαhλ@)8ε~+,¬f @ ¬εE⊂⊂ ⊗']z8:`4 i`≥I∃p\\]|p∀∀T∧&.z;@⊂_zy_name@?αC↔π∩←≠?KPβ∞π'∃β(
FB22q:Yβ if tr`∨@,∧&f)∞8
⎇⎇~0↔→β then de@ k@≤@
Vgβ8π4α↑|¬0⊃→p∧@/
λ¬eKaα+πQβ|εW#∩∧+B%*λ@∃Hα)0⊗~(∪y∨β+SCW ∧π&FTλL≥9(⊂⊂]⊂8c@U`λc;∞k↔`$¬`∞aQ@∧`≡∪zz0⊂@UhAiQ∀AGe←β≠@~@<Y0∪→y2w1YyP0zλ>1z`2_h
C[∃y|@Xh ⊂N>XC
β0vrWq0i@9P∞o∂,ε!F@X;9+Wc"P~[8∧il cur19C[JZβ↓d4&+∂I#≤¬w.αλλpTp∧R`,hS↔;⊂hP4*↓∧↓r?W'βWQβ&C∃β;∞k∃)9t↓y`(Q(λl≡y(⊂∀[5mq`5p∧1]C5K:A←α04+mxM\9∞H
}=@∀λ,∧")( ¬0⊃ KX4+K|¬V∞sαH⊂∩≠L77`4hi`≥NβX4+←L¬F&≡≤∧Yπ⊂7r`42("\")("9");
@QsaKoISiKdβQβ ?↑@E∧Tε⊃)("."$p4|εFF/,8λ.p¬s @=khdPα∩q %@∧"2∩⊃Q&.vL8λ.p¬s 7X4-x
.C≠X;,U_⎇0→ε4εame)
∀~)A'Kα≠S'⎇`λ
nαp
bep¬fAi!ChACIJAi↑↓EJAkαs∪↔Kd¬⊗v.Dλλ.2P2`.clo`'α+⊃β'p∧hVλπO;↔⊗␈DKα627]9vR.,¬'.
λ∧⊂∀*βb0∨/L∧⊂~]⊂:42H1y7`3q(eKα3↔K↔v≠↔Me`HπLεFE⊂≤∧@∪]YKehAβ##∃β≤ε&␈∨5↑&.Y<Y-ly(⊂⊗~yz⊂ !t p→Gβ+@⊃Fl≥V/@λε⊂ -aking |cu@H1qeKα3qβSF)β#↔∞"↓i@1Q',<→0⊂]⊂7p∃@PdPDXλRPD@λRvAGβ+@⊃Gl≥E}w]P
><@<≤αef);
`∪L↓Gkd⊃YCXyI∃Hλc≠d∧⊗ 4≥~→-d≠y5β∞β0v∀_zy∧;_v⊂
else begiN kut∩("T"$PE&DαI`~ε}ZAGX;
><B≥L≥λεr2Yα_flAdεRfAα{WQ∧+R%,¬FEαpp∞dl~∃Gkβ⊂ccK,∧e␈FM_M∃_⎇0→ε<92c
]FE 5npil curλxpef-@r~¬←β+Q! p∧"KZi⊗vO=βεfNβY.aQ@εE λ*7P 2everse the krdep∧A←L↓iQJA1S]GKα!β#'≤εBε@yH⊂n4πss pefe@IK]GKβ→1β←*β;↔↔ h#@'⎇tεn␈,Tπ6∂-≤⊗⊗F↑4π&F≡@λ∞
z;]∧∞≠h⊂⊃\αh∂gf↓eKMKIK]GJ↓K]ie%Kf@8hP4*↓βHvf↑%`EH∂K#!λλ;Y/∞αλ<9→s⊗ ⊂]44p∪_xref:0..max_refpεvAwA←SMi∃`AmCISCEY∃`
β≠|ε"εNnlW.α4w3H0P6 )pπil~(~∃A1SghAαK;[↔↔≠'?9∧¬↔4_Y4nD≥~≠n\βt:≠q⊂0yH87p⊂Ping eleee@9ifA←→H β?v)βOS∞≠ ~ε≥l@hW∞Z6FNβY`⊂≥42v@ onto an`∨I!Kd\A%\AiQ%bAGCMJAiGU`1`#⊗+≠qβ>K3 ",RπεTεF.≤@λ
|A"P~~2P9`4ack @QQChAβ;∃βC,ε6BπM
⊗v?4 vwεuaP@HαP∂ ≥]Y0→≥⊂:42H1y7i\T¬re@→KeK]
JAYSMhACHαβs∂W⊃C;π\X∂¬D≠8:m≥Yh↔><B≡∞9←λ∞M→(∩\9⊂∂GQ ¬:4~yH<9→q(∂hrebP↔Gβ+@⊃Fl≥V-kαh⊂⊃]y<9→q(∂0;
re@AKChAαs↔cPGC@⊗.ix∞
M8π5@(thi`&aqeKL$p
β@
H
-mh≥~
≡d∧<9→q∀o`#ur_xreb0⊗~)Gkd⊃aaKM∨β##'LGCC↔→X∧π&F≤∧f∂∞Y9Wml>≥ε∂∞Y9NaQ];]
≥λ≥~
≡f≡≤L\LεP⊂
λλ
*ααS#∃∧∧f}fMx
m≥Yh⊂→→qzy9Z{2P(≤4πce@⊃keJA]CYWf↓iQe←UH∂!β&C∃βS⊗+∃β?2β7?∪,¬F*εl≥V/~≥f H,∧⊂→~w:1P≥42v@.
@Nrecursion@>
~∃↓`Aae=G@↔∪,ε&*ε]x β∞≤Z3NE≤
P↔_vrL8≠ts:2\∀X @maeC]PAC@3bβ7?∪αXT≠X;,↑h~0↔λ9zq:≤αee $p v
begi@8ASLAβ↓yAβ&C↔8Q!⊗⊗.⎇_D
8πr≤90w:
4∧li@9P∞oBh¬∪@8λπFEαwzz2("P_DαI! -⊂¬∪@8λπFEαz7uL≤8∧r←18εAiKβCPcC'∩⎇E@4λl>X8λ≤8∧r←09
∀∪αCA∞¬6n}@ε→ML9j.d
αpurF4πutput; @→S]@'≤¬↓F@~;Y'`⊂∂
m`∨Haae@'w!#K∪L¬f@;|⊂∞@)8ε~(L∧Vv#1Q&.vG1P@!α@
@ @8@∨@,εGπ=λ⊂⊂[4∧ the mo@⊃kYJAαsπ7↔≤↓y`,¬=V}∧∧8 2int(rli`≥Wla2R~(→@)∧#↔W>;';≥ph"S#*αrBε≤~ε2q∧∧F.↔\|v/∩∞⎇↔&B∞⎇εN≡∧B`/uq0*H?H⊂≠XyP22]2r7h→p⊂0v≠4πws breakpointq
αto be set$ @¬]HAmαC'π⊗c↔Mβ≤∧⊗rε,Tπε.≤@ε∞vDλλm8π3rY⊗⊂1:]⊂897Xpr:`2es c@¬]]O@ ∧ε⊗(Q( /8⎇0~→p⊂∞ There@→←eJA∧AAiI∃EcN⊃!KYax≤Aae←
K@∪W⊗)β#π~β↔↔p∧εNw<XNL9λ⊂∀[⊂:42H4pt`.
`→←α{CMβ|∧bε.≤8
∧∞~_<lT≠yH∞M→(⊂_≤5sp∩am; when |Ddpp_Aα;⊃βd∧F'b≡&*π<X
∧∞≠h⊂⊂\897h≤4pz2CE;0v≥p¬s, pπs@7⊗{3'
¬βC'≠&{WSM∧{⊂∩πl≡&N␈↑4π&∞-H .P;t`,l a`@AKCd\4⊂⊂∀*Mε*ε≤LV
ε≡4π&@h≤q.D_(⊂⊃≤2pux≠tw:~w9t`$e the |debuc⊂⊃Q∃Ya`1∧ε&␈/M→f*`Q(λ.D≥~→$∞≠_8lT≠yH∞M→(_.>→<Z.≥|h_L]≠⎇kAQU~→-d≥z→-d∨→→,.9f~]≤∨λ
≡h≥≠dY(⊂,>~=X.L9λ∞<=λ↔∞N[⎇8ML&≤z
⎇⎇~;L␈β"P∩\zpv⊂≥4π |Tp¬`↔↔bqαπ≠&+IβO&{CC'v9βπQ∧εFF*.&.∞>
vNwEDπ&FTF&.,\qFF]Jπ`h,-w/&≥lRπ>≥H∧∞≤[{.∞λ≡3nT→[p→λ90v:YyP7`& |ddt| and |dd|, diScontinqang
thipεAoQ∃\AyI⊃h8axlAiQkLAs←@*βSgC*↓⊃Ke2∩"ε≥nF.≡↑.2bε]lFNvt
vO&∧&/⊗tλn∧¬αanegative NumbeR, afTer which You retpe\↓iVAi!JAE@⊗+π/C|K;Q↓FK→βG␈)βSg∧+⊂4T∧WεZ∀λn⊂8wzH2|4jλ:42P≤4πutine (id qou tqpEd a @9KGC@&K[∃β43G∃Jp4(Q(⊗v←MWαε⎇Iv⊗∞Dλ
L≡,.@.≥
debu`∞AiI←kEY∀1gQ←α{S'≠={SKW+Yβ∪↔↔+∀c∂L∧6f-v∪2ε&\.V)G==↔πε\KsβZ∞N&∞≡≥lu}⊗≥N6+\¬qPW≤[u,-α2L9Z5wz4[3os !lse+↓IKEK≤1G`'≤¬F-{↔↔∪KK4λ∞nM→<p∩H0y2P→αh∂dAβ;#↔d ↔"ε≥IV␈∨Dλ
m}X¬yoβE3r`"ed
λ¬A↓ycsgi∃ZAIKAK]IK9GSKg|∩∧~)↓HAEIKCWa=S]hzβAaaβ←β3π∂*β←#↔⊗)β¬β↔∪↔π∂∧{';Q∧¬↔4→→4m≡X8[←@εEεB 8⊂"→q:s@ prgc@∃I`↔K*β∪↔,8c#↔dεβJπα|[n↑~;Y$∞≠h⊃
≡|≠⊂⊂↑P;0y~wzyP≥44w3\␈
@1CEKX↓EeKC-a←S]PYKqSPr~¬mαAβ-W≠'cS,+8cM#@≠Z∂=⊗v&←εNwMtπ6∂-→w/~≡',>8␈AQXY9m≥H~0↔_y∀22X:sL9Ztx8"Y∀YFE~q⊂22X:sL9Ztx8"Y≤22a≥qHλcYcle Then Return;
debug_skippEd←0 64⊃EeK¬Sa←S9hu↓wZ~∀NαQ)))RQ)))RQ)+⊗+π/C|¬⊗w"%%"RR%%"RR%%";\¬qPB~%%"RR%%"RR,iw%JY→,.9yz-ljJJE%JJJE%JIp∂@ ≥FE≠5wx
Dq2cZw⊂;y~z2T:≥<V∪@#')3 @IKCHQQirYI⊃hR`,hP''→ε#∪QqαβS#↔p∧π,=→0→≠∧A∧b[9rP$Yα ddt=0 then goth∞AEIKCWa=S]hv4⊂∪eK¬HQiidYIHRl~∀'≤O*LG"ε|aP@K↔$ππ⊗≥nAFNEF"K1Q K∪$λ∞-;]ε∞L>≥
L
.c!!,nHmβy⊂%WXP:7H22⊂ $o print(xchrSbuffer[i]]);
4: for↓W>bAQ↑AIH↓I↑AaIS]hQaGQe75←IkY∃3W;:$v~∀∩TtAM←β⊃β.⎇
βS=β⎇+PcC'⊃β∪=πβK';"Cc∂#∃[?WPF∪W~@=;UjK1Q K3$λf␈∩
;s
πMtε&"Mrh!⊃⊗⊗.⎇≥bππ-≥g!F<≡BF≡≤¬⊗mnT]@≤90w:
⊂π ' 8ε~∀∩%K]Hv4⊂∪O@&C↔K∂∂≠↔Mβ∧ε&NwE gtj#"A≤8π21Xyry]CE eNd;
@∃qShuα+;⊃lhS⊂∨.,X@hPdα$
FF*
\⊗Nr∞λM||X;%A ¬& %t ∂fAAkhASPAC@3bβS >|ZFF/$λM}nH↔¬Ouq0*H?H∀nL<X
9H0s2 ends here.
@↑system depEndenci`gx~∀4TβAβ.;'9βL¬fO&≤≥FOVU1PDβJ:F␈⊗T⊗f@λ≥~T≤Y4l↑]Y0∩λ9wy2≤β@> 64⊃y!!CgJA$p 99t↓yl4T↓rC#∂≠∃α→↔"`%KP∂GF@
@<Pha`'α)α&&KQ19:βq`_hαY0↔→7s∃βEAVE8∧⊂∀,∧p~_z⊂ ≡∀90 nt statisti@
`
βπ⊗{WQβn+7?KJβWOπ>*↓`3αp
nL=_ `∞β@ ≡~)↓`∩q$↓{o#,ε&*εm_↑h≤p∀≠zpd↓EJAGαc?O↔ ∧εNH≥~T≠xλ %p¬CiSαs⊂~π?_nL8εP 2equi@IKfASβ#p⊂@ ¬2`.d.~∀4⊂
↓αβbCK≥nBπ∨L≡FO∨M_λnP0q7]z⊂6r[wy4P≥ypsrP≤ε0~~)ae@'w c 6β
∪Sp¬`≠←β∪eβW≤∧⊗ <αP9`4atic@QSGfTNP⊂4PK;π\Sππ≤NL¬DβP70[p¬s, '(λAqIK@_c∧εG'L d|[p→\β re@→KeK]
KfvNαI`_hαXλ 2int19XPO@∧∧↔.z;Yd∞Y<=-≡Y9⊂ T6p|ε9qy≤8∧r:0, ∞Agα≠@⊗∂∞5Bαhε6p↑:0_t_pt`$βQA04PI≥βS,ππ'~βλ eMαpp__th∂V1Aid`)αa≥βS|¬6.w5Dα:@λ≠8/β≤⎇_,=d∧8 4p∧t`X≤AP∪↔4∧Vg≠4p
'F@
`!β∪';Pβ
fbB|∧p↔\αp S]≤AeKcUSeKHα↓≥ &\∨↓G≡|∧]β∞≥_ :0, '↓YKmKαc@~@Ij#!↓Hλ¬⊂$[22|.
If you @!CmJAβ∪↔π⊃∧∧⊗v"∞XLL<X z≠wr⊂ 4he c=IJAMα{@∩¬
↔<(∩2)∀_8[nl+λ⊂≤[zP5w≠{P;t_zεE )pεAS\βaQS@~β';∪,παε∞βY≥
β{P )t go@PAQKe∀X απd¬Bε@8πr:[2yP )n which an ide@9iSMSα+@∩ε≤∧c!8¬se@⊂ACeJ↓YSgi∃HAoSβ#!βSFQβ'&+;@&≤h
,↑Kλ⊂∩↑1rx 4 p QCPAeKgα+@↔6\@∂>␈,N2ε∂,QP@-8π22↑2r⊂ /nh rAβ;#↔dλ
>(⊂⊂\82pyλ4p∞ @→←e@7∂!β∪↔0¬⊗vOM_mnhε⊂!nd the a`!ββ↔πK∞s∂/1Q&}H~0∩→w:4`&i`e@~β'9βn{∪@.β→(
l8εr`3 are nh∂hAαK;∪↔F+⊃9αα]f&/-H
-l9λ⊂∩[8∧ri@∃`4,8n92y`0ond @Q↑AoQ∃`∃β&C∃β'&+;@&≤h
,↑H≥x.P22`#lare@⊂X α↔↔∪?Iβn+@∨≡≤|W4_;Y∧(→P∩]F@
o@QQKdAβ##'l}2ε@~:y$_≤Y,><X `)on''are @%]IKq∃HAQKβ∪∃βS|¬r`! ¬